Nik*_*nyh 2 python tornado urllib
在tornado httpclient中有没有办法执行PUT请求?
例如有没有更换任何方式urllib与请求库?
或者也许是子类自己的客户端并从这个答案注入构造:
import urllib2
opener = urllib2.build_opener(urllib2.HTTPHandler)
request = urllib2.Request('http://example.org', data='your_put_data')
request.add_header('Content-Type', 'your/contenttype')
request.get_method = lambda: 'PUT'
url = opener.open(request)
Run Code Online (Sandbox Code Playgroud)
任何无痛的补丁,黑客,建议..
我希望这种结构能够有效地工作:
response = yield gen.Task(http_client.fetch, opt.site_url + '/api/user/', method="PUT", body=urlencode(pdata))
Run Code Online (Sandbox Code Playgroud)
现在它不发送身体.
不,Tornado不使用urllib(可能是它阻止).使用httpclient进行比基本GET更复杂的操作的技巧是创建HTTPRequest.
未经测试,但应该工作:
from tornado.httpclient import HTTPRequest
request = HTTPRequest(opt.site_url + '/api/user/', method="PUT", body=urlencode(pdata))
response = yield gen.Task(http_client.fetch, request)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2186 次 |
| 最近记录: |