如何使用python执行此请求

时间:2014-02-20 09:07:42

标签: python json django rest

我希望使用python执行此操作。这是一个RESTful请求

 curl -XPOST -u 'userid:password' -H
    'Content-Type: application/json' -H 'X-Forwarded-For: 100.100.0.144' -k
    'http://myurl


    ' -d  ' jsonObject

到目前为止我所拥有的

import urllib2

def make_payment_request():
   manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
   manager.add_password(None, 'https://url', 'userid', 'passwrd')
   handler = urllib2.HTTPBasicAuthHandler(manager)

   director = urllib2.OpenerDirector()
   director.add_handler(handler)

   req = urllib2.Request('https://url', headers = {'Accept' : 'application/json'})

   result = director.open(req)


# To get say the content-length header
   print "this is result",result

我收到的回复是None我如何用它添加jSonobject

1 个答案:

答案 0 :(得分:0)

使用requests

import requests
import json

url = 'http://myurl'
headers = {'X-Forwarded-For': '100.100.0.144'}
user = 'user'
password = 'sekret'
data = {'foo': 'bar'}

r = requests.post(url,
                  data=json.dumps(data), auth=(user,password), headers=headers)

  

我得到了request.exceptions.SSLError:[Errno 1] _ssl.c:504:   错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书   验证失败

就像网络浏览器一样,requests会尝试验证SSL。在浏览器中,如果SSL没有验证,您会收到警告,然后您可以选择继续访问该网站。

对于requests,您可以通过传递verify=False来忽略SSL验证错误来实现相同目的。

r = requests.post(url, verify=False,
                  data=json.dumps(data), auth=(user,password), headers=headers)