我试图使用urllib2.urlopen通过Facebook图形API执行GET和POST请求。我从这里注意到:https://stackoverflow.com/questions/2690723/facebook-graph-api-and-django 我可以很容易地执行GET请求。
从这里开始:How to send a POST request using django?和Python文档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()只在指定数据参数时发送POST。
如果您设置data=,它似乎实际上发送了一个空POST,并且仅在data=None时获取请求:
希望能有所帮助。我从一个小小的HTTP服务器得到了响应打印输出,他们在这里有一个示例:http://docs.python.org/library/simplehttpserver.html
发送空POST的另一种方法是创建请求并重写其get_方法。在这种情况下,这是更多的工作,但在其他情况下可能更干净(例如,如果您已经有一个请求)。
get_method是一个返回要使用的方法的方法,因此在这里我们用一个返回'POST'的lambda函数重写它。
直接来自Python(urllib2)文档
urllib2.urlopen(url[,data][,timeout]) 打开URL URL,它可以是字符串或请求对象。 警告:HTTPS请求不对服务器的证书进行任何验证。 数据可以是指定要发送到服务器的附加数据的字符串,如果不需要此类数据,则可以是“无”。目前只有HTTP请求使用数据;当提供数据参数时,HTTP请求将是POST而不是GET。
相关问题 更多 >
编程相关推荐