繁体   English   中英

通过urllib或urllib2在Python中进行卷曲请求

[英]Curl request in Python by urllib or urllib2

我需要将curl POST请求转换为python urllib或/和urllib2 POST请求

那就是URL

curl -k -X POST "https://api.foursquare.com/v2/checkins/add" \
-H "Accept-Language: en-US" -H "Accept-Encoding: gzip" \
-H "Connection: Keep-Alive" -H "Content-Type: application/x-www-form-urlencoded" \
--user-agent "com.foursquare.android:2013040200:20130402:4.2.2:GT-I9100:release" \
--data "ll=55.828299%2C49.081782&llAcc=56.0&venueId=5192088a498edf76505871fe&shout=&broadcast=public&oauth_token=blahblahblah&v=blablabla"

我的密码

import urllib
import urllib2

url = 'https://api.foursquare.com/v2/checkins/add'

values = {
  'll' : '55.828299%2C49.081782',
  'llAcc' : '56.0',
  'venueId' : '5192088a498edf76505871fe',
  'shout' : '',
  'broadcast' : 'public',
  'oauth_token' : 'blahblahblah',
  'v' : 'blablabla',
}

data = urllib.urlencode(values)

req = urllib2.Request(url, data)  # POST request doesn't not work
req.add_header("Accept-Language", "en-US")
req.add_header("Accept-Encoding", "gzip")
req.add_header("Connection", "Keep-Alive")
req.add_header("Content-Type", "application/x-www-form-urlencoded")
req.add_header("User-Agent","com.foursquare.android:2013040200:20130402:4.2.2:GT-I9100:release")

urllib2.urlopen(req)

那是上升的错误:

raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 400: Bad Request

但是cURL代码运行良好。

就像moliware所说的一样,除了'll':'55 .828299%2C49.081782'之外,其他都没问题,应该是:'ll':'55 .828299,49.081782'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM