python – 如何使用urllib2.urlopen使POST请求没有数据参数

我试图使用urllib2.urlopen通过Facebook Graph API执行GET和POST请求.我从这里注意到:Facebook Graph API and Django
我可以很容易地执行GET请求.

从这里:how to send a post request using django 和Python docs http://docs.python.org/library/urllib2.html似乎需要数据参数来执行POST请求.

但是看看Facebook的API:http://developers.facebook.com/docs/reference/api/event/#invited它说

You can invite users to an event by issuing an HTTP POST to
/EVENT_ID/invited/USER_ID

我不知道如何使用urlopen,因为直接打开这个url将只检查用户是否被邀请,如API页面所述:

You can check whether a specific user has been invited to an event by
issuing an HTTP GET to /EVENT_ID/invited/USER_ID:

欣赏输入.

最佳答案
这听起来像是要发送一个空的POST请求,即使urllib2.urlopen()仅在指定数据参数时发送一个帖子.

如果您设置data =“”,并且仅当data = None时才发出GET请求,它实际上会发送一个空的POST:

urllib2.urlopen("http://127.0.0.1:8000", data="")
"POST / HTTP/1.1" 501 - 

urllib2.urlopen("http://127.0.0.1:8000", data=None)
"GET / HTTP/1.1" 200 -

希望有帮助.我从小HTTP服务器得到了响应打印输出,例如:http://docs.python.org/library/simplehttpserver.html

转载注明原文:python – 如何使用urllib2.urlopen使POST请求没有数据参数 - 代码日志