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.
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
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!