这就是我想要的。
我成功完成了步骤1& 2(提交的POST&收到了网站的回复)。
request = urllib2.Request(url, formData, headers)
response = urllib2.urlopen(request)
但是当我尝试在视图中返回它时
return response
我收到了以下错误
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
请注意: 我有一个csrf错误,但是我使用装饰器@csrf_exempt& amp禁用了csrf。错误消失了
答案 0 :(得分:7)
您不应直接从urlopen方法返回响应。相反,您的视图应返回django HttpResponse的实例,其中body和标题应设置为原始响应中的标题:
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
答案 1 :(得分:0)
首先,在视图中提交URL请求作为响应是没有意义的。但是,即使你可以,那也不会做你想要的。没有办法将用户登录到其他站点,原因应该是明显的原因:这将是一个巨大的安全漏洞。