Maison  >  Article  >  développement back-end  >  Déclassement invalide du prototype

Déclassement invalide du prototype

WBOY
WBOYavant
2024-02-09 13:51:08577parcourir

Déclassement invalide du prototype

l'éditeur php Yuzai vous présente "Désorganisation invalide du prototype". Dans le développement de logiciels, les prototypes constituent un concept important utilisé pour vérifier et démontrer rapidement les idées de conception. Cependant, il arrive parfois qu’un prototype soit considéré comme inefficace car il risque de ne pas atteindre les objectifs souhaités ou de ne pas répondre aux besoins des utilisateurs. Dans ce cas, nous devons invalider le prototype, découvrir le problème et trouver une solution. Cet article explore l’importance du dégroupage prototype inefficace et comment le faire efficacement.

Contenu de la question

J'essaie de décoder des données brutes. Mais le prototype n'est pas décodé correctement.

Voici ce que je fais :

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)

Le résultat est le suivant :

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

Je ne sais pas pourquoi traceid s'affiche comme ceci :

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

Je suis nouveau dans la langue. Toute aide serait grandement appréciée

Solution de contournement

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer