改在错误的/ home [错误-2]名称或服务在httplib的文档不知道
问题描述:
%的例子:改在错误的/ home [错误-2]名称或服务在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()
我的代码是:
我的本地变量yeilds的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()
检查:
连接: PARAMS “在0x8baa4ac httplib.HTTPSConnection实例”: '标记= [一些字符串] & apiKey = [一些字符串]'
(我的指示拨打这通电话是:
使用令牌,使auth_info API调用: 网址:https://rpxnow.com/api/v2/auth_info 参数:
apiKey [一些字符串] 令牌 令牌值你以上摘录)
但我收到主题行中提到的错误。为什么?
答
你误解了文档httplib的。实例化HTTPSConnection
的参数只是主机名。然后,将实际路径作为第二参数传递给request
。所以:
connection = httplib.HTTPSConnection('rpxnow.com')
connection.request('POST', '/api/v2/auth_info', params)
答
我不知道rpxnow.com是什么,我对他们的API并不熟悉,但是这个错误信息表明他们没有服务响应那个URL的请求(例如'rpxnow.com/api/ V2/auth_info')。
您能否验证他们的服务已启动并在该URL上运行?
答
尝试使用这样的:
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
看来是,当我去那里时,我得到:{“err”:{“msg”:“缺少参数:apiKey”,“code”:0},“stat”:“失败“}(我假设服务是否关闭,我会得到不同的信息) – Colleen
你是对的,科琳。丹尼尔罗斯曼钉了它。 – sclaughl