Jib*_*bin 9 django response urllib2
这就是我要的.
我成功完成了第1步和第2步(提交了POST并收到了网站的回复).
request = urllib2.Request(url, formData, headers)
response = urllib2.urlopen(request)
Run Code Online (Sandbox Code Playgroud)
但是当我试图在视图中返回它时
return response
Run Code Online (Sandbox Code Playgroud)
我得到了以下错误
Django Version: 1.3.1
Exception Type: AttributeError
Exception Value: addinfourl instance has no attribute 'has_header'
Exception Location:D:\Python27\lib\site-packages\django\utils\cache.py in patch_vary_headers
Run Code Online (Sandbox Code Playgroud)
注意:我有一个csrf错误,但我使用装饰器@csrf_exempt禁用了csrf并且错误消失了
您不应该直接从urlopen方法返回响应.相反,你的视图应该返回一个django的HttpResponse实例,其中body和header应该设置为原始响应中的那些:
from django.http import HttpResponse
import urllib2
def my_view(request):
request = urllib2.Request(url, formData, headers)
response = urllib2.urlopen(request)
# set the body
r = HttpResponse(response.read())
# set the headers
for header in response.info().keys():
r[header] = response.info()[header]
return r
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5810 次 |
| 最近记录: |