python - Tornado PUT 请求丢失的正文

标签 python tornado

我正在尝试使用 Tornado ASyncHTTPClient 发出放置请求,如下所示:

  data = { 'text': 'important text',
           'timestamp': 'an iso timestamp' }

  request = tornado.httpclient.HTTPRequest(URL, method = 'PUT', body = urllib.urlencode(data))

  response = yield Task(tornado.httpclient.ASyncHTTPClient().fetch, request)

但是,当请求到达其所需的端点时,它似乎没有主体,尽管上述主体已在上面正确编码和定义。我在这里忽略了什么吗?


最佳答案

如果另一端需要 JSON,您可能需要设置一个“Content-Type” header 。试试这个:

data = { 'text': 'important text',
       'timestamp': 'an iso timestamp' }

headers = {'Content-Type': 'application/json; charset=UTF-8'}

request = tornado.httpclient.HTTPRequest(URL, method = 'PUT', headers = headers, body = simplejson.dumps(data))

response = yield Task(tornado.httpclient.ASyncHTTPClient().fetch, request)

这样, header 告诉服务器您正在发送 JSON,而正文是一个可以解析为 JSON 的字符串。

关于python - Tornado PUT 请求丢失的正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15534748/

相关文章:

Python ZMQ 和多处理导致 zmq.error.ZMQError : Interrupted system call

python - 计算一个数组中存在于另一个数组中的项目数?

python - Facebook 连接 django/python

python - tornado 的警告 [Errno 104] Connection reset by peer

python - 使用 Tornado 拥有持久的运行时对象

python - 从 pandas.DataFrame 列配置 Bokeh 的工具提示

python - Django related_table() 和 extra()

python-3.x - Python Tornado 从另一个线程发送 WebSocket 消息

python - 用户消息的消息队列

python - Tornado 服务器上的 SSL 错误