这是原始文件的链接。
请有人可以帮助我了解如何进行此工作:
from django.views.decorators.csrf import csrf_exempt
from bitchikun import payments_pb2
@csrf_exempt
def protoresponse(request):
xpo = payments_pb2.Payment.ParseFromString(request)
t = type(xpo)
xpa = request.PaymentACK
xpa.payment = xpo.SerializeToString()
xpa.memo = u'success'
return HttpResponse(xpa.SerializeToString(), content_type="application/octet-stream")
所有输入表示赞赏:)
好的,我想我知道现在发生了什么。您有一个将序列化protobuf发布到Django应用程序的系统,并且您需要返回另一个protobuf作为响应。
在Django中,您可以通过中的POST访问数据request.body
。那可能是您需要传递给的内容ParseFromString
。
您还存在其他一些错误:您引用request.PaymentACK
,它并不存在-您的意思是payments_pb2.PaymentACK
-并且您从未实际实例化它。另外,当您应该传递实际消息时,您尝试将原始请求protobuf的序列化版本传递给该响应之一。
因此,总共看起来像这样:
xpo = payments_pb2.Payment.FromString(request.body)
xpa = payments_pb2.PaymentACK()
xpa.payment = xpo
xpa.memo = u'success'
return HttpResponse(xpa.SerializeToString(), content_type="application/octet-stream")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句