1

根据 httplib 文档中的示例:

>>> import httplib, urllib
>>> params = urllib.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
>>> headers = {"Content-type": "application/x-www-form-urlencoded",
...            "Accept": "text/plain"}
>>> conn = httplib.HTTPConnection("bugs.python.org")
>>> conn.request("POST", "", params, headers)
>>> response = conn.getresponse()
>>> print response.status, response.reason
302 Found
>>> data = response.read()
>>> data
'Redirecting to <a href="http://bugs.python.org/issue12524">http://bugs.python.org/issue12524</a>'
>>> conn.close()

我的代码是:

import httplib
import urllib

token = request.POST.get('token')
if token:
    params = urllib.urlencode({'apiKey':'[some string]', 'token':token})
    connection = httplib.HTTPSConnection('rpxnow.com/api/v2/auth_info')
    connection.request('POST', "", params)
    response = connection.getresponse()
    print response.read()

检查我当地的 vars 产量:

连接:“httplib.HTTPSConnection 实例在 0x8baa4ac” 参数:'token=[some string]&apiKey=[some string]'

(我拨打这个电话的指示是:

使用令牌进行 auth_info API 调用: URL:https://rpxnow.com/api/v2/auth_info 参数:

apiKey [some string] token 你上面提取的token值)

但我收到了主题行中提到的错误。为什么?

4

3 回答 3

4

您误解了 httplib 的文档。实例化的参数HTTPSConnection只是主机名。然后,您将实际路径作为第二个参数传递给request. 所以:

connection = httplib.HTTPSConnection('rpxnow.com')
connection.request('POST', '/api/v2/auth_info', params)
于 2011-12-28T22:12:12.543 回答
0

我不知道 rpxnow.com 是什么,而且我不熟悉他们的 API,但此错误消息表明他们没有响应该 URL 上的请求的服务(即 'rpxnow.com/api/v2/auth_info' )。

您是否能够验证他们的服务是否已在该 URL 上启动并运行?

于 2011-12-28T22:05:01.517 回答
0

尝试使用这个:

http://docs.python-requests.org/en/latest/user/quickstart/#make-a-post-request

import requests

payload = {'apiKey':'somevalue', 'token':'some_token'}
r = requests.post('https://rpxnow.com/api/v2/auth_info', data=payload)
r.content
于 2011-12-28T22:10:20.703 回答