如何使用urllib2.urlopen在没有数据参数的情况下发出POST请求

air*_*ang 15 python urllib2 urlopen facebook-graph-api

我正在尝试使用urllib2.urlopen通过Facebook Graph API执行GET和POST请求.我从这里注意到:https://stackoverflow.com/questions/2690723/facebook-graph-api-and-django 我可以很容易地执行GET请求.

从这里:如何使用django发送POST请求?并且Python文档http://docs.python.org/library/urllib2.html似乎需要数据参数来执行POST请求.

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

您可以通过向/ EVENT_ID/invite/USER_ID发出HTTP POST来邀请用户参加活动

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

您可以通过向/ EVENT_ID/invite/USER_ID发出HTTP GET来检查特定用户是否已被邀请参加活动:

欣赏输入.

Chr*_*ian 36

听起来你想发送一个空的POST请求,即使urllib2.urlopen()只在你指定data参数时发送一个帖子.

看起来如果设置data =""它实际上发送一个空POST,并且只有当data = None时才发出GET请求:

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 -
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.我从小HTTP服务器获得了响应打印输出,他们在这里有一个示例:http://docs.python.org/library/simplehttpserver.html


Gil*_*man 0

我认为你已经回答了你自己的问题,你只是想太多了......

  • 使用 urlopen 邀请用户发出 POST

  • 要检查用户是否已被邀请,请使用 urlopen 发出 GET。

在这两种情况下,您都使用相同的 URL 进行通信,区别在于 GET 或 POST。

如果您不确定 urlopen 的 GET 和 POST 之间的区别,请阅读此文档:

http://www.doughellmann.com/PyMOTW/urllib2/