Heim  >  Artikel  >  Backend-Entwicklung  >  Ungültiges Unmarshalling des Prototyps

Ungültiges Unmarshalling des Prototyps

WBOY
WBOYnach vorne
2024-02-09 13:51:08580Durchsuche

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.

Frageninhalt

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

Workaround

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen