【问题标题】:How to execute this request using python如何使用 python 执行这个请求
【发布时间】:2014-03-21 02:40:01
【问题描述】:

我希望使用 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 全部添加进去

【问题讨论】:

    标签: python json django rest


    【解决方案1】:

    使用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)
    

    我收到 'requests.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)
    

    【讨论】:

    • 嗨,请帮我解决错误 500。这是否意味着我们发送的所有内容都很好?
    猜你喜欢
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    相关资源
    最近更新 更多