gai 错误 /home [Errno -2] 未知的名称或服务

1 投票
3 回答
5415 浏览
提问于 2025-04-17 09:10

根据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()

检查我的本地变量后得到:

连接: "httplib.HTTPSConnection实例在0x8baa4ac"

参数: 'token=[某个字符串]&apiKey=[某个字符串]'

(我发出的请求是:

使用这个token来调用auth_info API:

网址: https://rpxnow.com/api/v2/auth_info

参数:

apiKey
[某个字符串]
token
你上面提取的token值)

但是我遇到了主题行中提到的错误。为什么会这样?

3 个回答

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
0

我不知道rpxnow.com是什么,也不太了解他们的API,但这个错误信息说明在那个网址(也就是'rpxnow.com/api/v2/auth_info')没有服务在回应请求。

你能确认一下他们的服务在那个网址是不是正常运行吗?

4

你可能对httplib的文档理解错了。创建HTTPSConnection时,传入的参数只是主机名。然后你在调用request时,把实际的路径作为第二个参数传进去。所以:

connection = httplib.HTTPSConnection('rpxnow.com')
connection.request('POST', '/api/v2/auth_info', params)

撰写回答