Heim >Backend-Entwicklung >Golang >Ungültiges Unmarshalling des Prototyps
php-Editor Yuzai stellt Ihnen „Invalid Unorganization of Prototype“ vor. In der Softwareentwicklung sind Prototypen ein wichtiges Konzept, mit dem Designideen schnell überprüft und demonstriert werden können. Manchmal wird ein Prototyp jedoch als ineffektiv angesehen, weil er möglicherweise nicht die gewünschten Ziele erreicht oder die Benutzeranforderungen nicht erfüllt. In diesem Fall müssen wir den Prototyp ungültig machen, das Problem herausfinden und eine Lösung finden. In diesem Artikel wird die Bedeutung der prototypischen ineffektiven Degruppierung untersucht und wie sie effektiv durchgeführt werden kann.
Ich versuche, Rohdaten zu entschlüsseln. Der Prototyp wird jedoch nicht richtig dekodiert.
Das mache ich:
decodedstr, err := base64.stdencoding.decodestring(request.body) if err != nil { panic("malformed input") } data := &tracepb.exporttraceservicerequest{} if err := proto.unmarshal(decodedstr, data); err != nil { log.fatalln("failed to parse:", err) } log.printf("response - %v", data)
Die Ausgabe ist wie folgt:
response - resource_spans:{resource:{attributes:{key:"service.name" value:{string_value:"node_app"}} attributes:{key:"telemetry.sdk.language" value:{string_value:"nodejs"}} attributes:{key:"telemetry.sdk.name" value:{string_value:"opentelemetry"}} attributes:{key:"telemetry.sdk.version" value:{string_value:"1.8.0"}} attributes:{key:"process.pid" value:{int_value:1}} attributes:{key:"process.executable.name" value:{string_value:"node"}} attributes:{key:"process.command" value:{string_value:"/usr/app/index.js"}} attributes:{key:"process.command_line" value:{string_value:"/usr/local/bin/node /usr/app/index.js"}} attributes:{key:"process.runtime.version" value:{string_value:"18.13.0"}} attributes:{key:"process.runtime.name" value:{string_value:"nodejs"}} attributes:{key:"process.runtime.description" value:{string_value:"node.js"}}} scope_spans:{scope:{name:"@opentelemetry/instrumentation-express" version:"0.32.0"} spans:{trace_id:"\xb5\x81\x91\x8b\x02\x9a/\xf1\x08\x06\xaf~\xea\x9fq\xc0" span_id:"t\x06\x89m\x1ex\xf9a" parent_span_id:"?\xbc\x18`o\xa5\xb8\xe1" name:"middleware - query" kind:span_kind_internal start_time_unix_nano:1673434036590614272 end_time_unix_nano:1673434036590671104 attributes:{key:"http.route" value:{string_value:"/"}} attributes:{key:"express.name" value:{string_value:"query"}} attributes:{key:"express.type" value:{string_value:"middleware"}} status:{}} spans:{trace_id:"\xb5\x81\x91\x8b\x02\x9a/\xf1\x08\x06\xaf~\xea\x9fq\xc0" span_id:"\xd5c\xf7>\xf6cxz" parent_span_id:"?\xbc\x18`o\xa5\xb8\xe1" name:"middleware - expressinit" kind:span_kind_internal start_time_unix_nano:1673434036590760704
Ich weiß nicht, warum Traceid so angezeigt wird:
spans:{trace_id:"\xb5\x81\x91\x8b\x02\x9a/\xf1\x08\x06\xaf~\xea\x9fQ\xc0"
Ich bin neu in der Sprache. Für jede Hilfe wäre ich sehr dankbar
Nutzungencoding/hex
模块的hex.EncodeToString()
函数将bytes
转换为hex
Das obige ist der detaillierte Inhalt vonUngültiges Unmarshalling des Prototyps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!