Rumah >pembangunan bahagian belakang >Golang >Penyingkiran prototaip tidak sah

Penyingkiran prototaip tidak sah

WBOY
WBOYke hadapan
2024-02-09 13:51:08615semak imbas

Penyingkiran prototaip tidak sah

editor php Yuzai memperkenalkan kepada anda "Penyusunan Prototaip Tidak Sah". Dalam pembangunan perisian, prototaip ialah konsep penting yang digunakan untuk mengesahkan dan menunjukkan idea reka bentuk dengan cepat. Walau bagaimanapun, kadangkala prototaip dianggap tidak berkesan kerana ia mungkin tidak mencapai matlamat yang diingini atau memenuhi keperluan pengguna. Dalam kes ini, kita perlu membatalkan prototaip, mengetahui masalah dan mencari penyelesaian. Artikel ini meneroka kepentingan penyahkumpulan tidak berkesan prototaip dan cara melakukannya dengan berkesan.

Kandungan soalan

Saya cuba menyahkod data mentah. Tetapi prototaip tidak dinyahkod dengan betul.

Ini yang saya lakukan:

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)

Keluaran adalah seperti berikut:

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

Saya tidak tahu mengapa paparan traceid seperti ini:

spans:{trace_id:"\xb5\x81\x91\x8b\x02\x9a/\xf1\x08\x06\xaf~\xea\x9fQ\xc0"

Saya baru dalam bidang bahasa. Sebarang bantuan akan sangat dihargai

Penyelesaian

Penggunaanencoding/hex模块的hex.EncodeToString()函数将bytes转换为hex

Atas ialah kandungan terperinci Penyingkiran prototaip tidak sah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam