改在错误的/ 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上运行?

+0

看来是,当我去那里时,我得到:{“err”:{“msg”:“缺少参数:apiKey”,“code”:0},“stat”:“失败“}(我假设服务是否关闭,我会得到不同的信息) – Colleen

+0

你是对的,科琳。丹尼尔罗斯曼钉了它。 – sclaughl

尝试使用这样的:

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