gpt4 book ai didi

python - Google App Engine json 发布请求正文

转载 作者:太空狗 更新时间:2023-10-30 01:55:53 25 4
gpt4 key购买 nike

每当我发送包含冒号“:”的字符串时,我都无法从 Google 应用引擎应用程序的 POST 请求中读取正文

这是我的请求处理程序类:

class MessageSync(webapp.RequestHandler):
def post(self):
print self.request.body

这是我的测试脚本:

import httplib2

json_works = '{"works"}'
json_doesnt_work = '{"sux": "test"}'
h = httplib2.Http()

resp, content = h.request('http://localhost:8080/msg',
'POST',
json_works ,
headers={'Content-Type': 'application/json'})

print content

如果我使用变量 json_works 请求正文被打印出来,但是如果我使用 json_doest_work 我将不会得到任何对控制台的响应。除非我打印整个请求对象,否则我会得到这个:

POST /msg
Content-Length: 134
Content-Type: application/json
Host: localhost:8080
User-Agent: Python-httplib2/$Rev$

{"sux": "test"}

为什么我不能只获取正文?谢谢!

最佳答案

json_doesnt_work 的情况下,print 函数将 self.request.body 设置为 Response header 因为它是 {key:value} 参数的形式。

{'status': '200', 'content-length': '0',
'expires': 'Fri, 01 Jan 1990 00:00:00 GMT',
'server': 'Development/1.0',
'cache-control': 'no-cache',
'date': 'Tue, 22 Feb 2011 21:54:15 GMT',
'{"sux"': '"test"}', <=== HERE!
'content-type': 'text/html; charset=utf-8'
}

你应该像这样修改你的处理程序:

class MessageSync(webapp.RequestHandler):
def post(self):
print ''
print self.request.body

甚至更好

class MessageSync(webapp.RequestHandler):
def post(self):
self.response.headers['Content-Type'] = "text/plain"
self.response.out.write(self.request.body)

关于python - Google App Engine json 发布请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5082832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com