Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python 3构造对neutrinoapi的请求?(将urllib2请求转换为urllib)_Python_Python 3.x_Urllib2_Urllib - Fatal编程技术网

如何使用python 3构造对neutrinoapi的请求?(将urllib2请求转换为urllib)

如何使用python 3构造对neutrinoapi的请求?(将urllib2请求转换为urllib),python,python-3.x,urllib2,urllib,Python,Python 3.x,Urllib2,Urllib,我不熟悉服务器端代码,对使用neutrinoapi www.neutrinoapi.com从文本中过滤出一些不好的单词很感兴趣。我使用瓶服务器在Python 3 im中编写了以下代码: url = 'https://neutrinoapi.com/bad-word-filter' params = { 'user-id': 'testing', 'api-key': '205cmqorLBdyV2F9FX4z6NNq1Y3z8AkRTw8ImtGE2MtzxmhT', '

我不熟悉服务器端代码,对使用neutrinoapi www.neutrinoapi.com从文本中过滤出一些不好的单词很感兴趣。我使用瓶服务器在Python 3 im中编写了以下代码:

url = 'https://neutrinoapi.com/bad-word-filter'
params = {
    'user-id': 'testing',
    'api-key': '205cmqorLBdyV2F9FX4z6NNq1Y3z8AkRTw8ImtGE2MtzxmhT',
    'ip': '162.209.104.195'
}

json_data = json.dumps(params).encode('utf8')
response = urllib.request.urlopen(url, data = json_data)
result = json.loads(response.read())
此请求返回以下错误:

引发HTTPErrorreq.full_url、代码、消息、hdrs、fp urllib.error.HTTPError:HTTP错误403:禁止

网站上的示例位于以下链接:


提供的示例是使用python 2.7和urllib2,据我所知,它们现在已内置到urllib中。似乎无法获得在Python 3中工作的请求。有没有关于如何发出正确请求的想法?

Python示例没有将JSON用于参数,只用于响应。您需要对这些参数进行URL编码;为此使用,然后将生成的字符串编码为字节

您还需要发送坏字筛选请求的内容参数,而不是IP地址:

from urllib.parse import urlencode

url = 'https://neutrinoapi.com/bad-word-filter'
params = {
    'user-id': 'testing',
    'api-key': '<valid api key>',
    'content': 'foo bar baz'
}

encoded_params = urlencode(params).encode('utf8')
response = urllib.request.urlopen(url, data = encoded_params)
result = json.loads(response.read())

非常感谢。这真是太棒了。我在示例中遗漏了它,但它非常有意义。