我想从一个python脚本发送POST数据到一个url。下面是代码:Python POST不起作用
def createperson(self,name=None):
SERVER_BASE_ADDR = 'http://localhost:8000/'
postdata = urllib.urlencode({'name':name})
req = urllib2.Request(SERVER_BASE_ADDR + 'people/add')
fd = urllib2.urlopen(req,postdata)
return name
但这返回
HTTPError: HTTP Error 500: INTERNAL SERVER ERROR
添加一个人的网址是好的。有任何想法吗?
编辑
服务器端使用Django的装饰来处理POST和GET。
@require_http_methods(["GET", "POST"])
def add(request):
if request.method == "POST":
#do stuff with post data
是不是上面的Python代码提交HTML模板上的表单相同?如果它一样,那么处理程序不应该以相同的方式处理它?
谢谢
解决使用:
c = urllib2.build_opener()
postdata = urllib.urlencode({'name':name})
r = c.open(url,postdata)
一种不同的方法,但做这项工作。感谢您的答复。
你用什么来处理服务器端的请求?它需要一个尾部斜线/?您的服务器是否会提供有关为什么它的请求失败的任何反馈? – jdi 2012-02-10 15:30:09