Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的Http POST Curl_Python_Http_Post_Curl_Facebook Opengraph - Fatal编程技术网

python中的Http POST Curl

python中的Http POST Curl,python,http,post,curl,facebook-opengraph,Python,Http,Post,Curl,Facebook Opengraph,我很难理解如何从python内部使用curl发出HTTP POST请求 我想在facebook上发布开放图。下面是他们给出的示例,我想在python中完全复制它 curl -F 'access_token=...' \ -F 'message=Hello, Arjun. I like this new API.' \ https://graph.facebook.com/arjun/feed 有人能帮我理解这一点吗?您可以使用Python或更高级别的工具发布帖子 还有一个特

我很难理解如何从python内部使用curl发出HTTP POST请求

我想在facebook上发布开放图。下面是他们给出的示例,我想在python中完全复制它

curl -F 'access_token=...' \
     -F 'message=Hello, Arjun. I like this new API.' \
     https://graph.facebook.com/arjun/feed
有人能帮我理解这一点吗?

您可以使用Python或更高级别的工具发布帖子

还有一个特定于Facebook的Python高级库,可以为您完成所有的发布


首先为什么要使用curl

Python为Facebook提供了广泛的库,包括用于web请求的库,调用另一个程序并接收输出是不必要的

也就是说

首先来自Python文档

数据
可以是指定要发送到服务器的其他数据的字符串, 或
None
如果不需要此类数据。目前HTTP请求是 只有那些使用数据的人HTTP请求将是
POST
而不是 提供数据参数时获取
<代码>数据应为中的缓冲区 标准
应用程序/x-www-form-urlencoded
格式。这个 urllib.urlencode()函数接受一个2元组的映射或序列 并返回此格式的字符串。urllib2模块发送HTTP/1.1 具有连接的请求:包括关闭标头

所以

导入urllib2,urllib 参数={} 参数['token']='sdfsdb23424' 参数['message']='Hello world' 靶子http://www.target.net/work' parameters=urllib.urlencode(参数) handler=urllib2.urlopen(目标,参数) 尽管如此: 如果handler.code<400: 打印“完成” #给你的工作打电话 打破 elif handler.code>=400: 打印“错误请求或错误” #失败 打破
import urllib

params = {}

params['access_token'] = '*****'
params['message'] = 'Hello, Arjun. I like this new API.'

params = urllib.urlencode(params)
f = urllib.urlopen("https://graph.facebook.com/arjun/feed", params)
print f.read()
import urllib2, urllib
parameters = {}
parameters['token'] = 'sdfsdb23424'
parameters['message'] = 'Hello world'
target = 'http://www.target.net/work'

parameters = urllib.urlencode(parameters)
handler = urllib2.urlopen(target, parameters)
while True:
    if handler.code < 400:
        print 'done'
        # call your job
        break
    elif handler.code >= 400:
        print 'bad request or error'
        # failed
        break