随机字SetGetGo API

2024-10-01 05:03:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python3创建一个应用程序,它从下面的API服务中检索一个随机单词

http://randomword.setgetgo.com/get.php

这就是我目前所做的

import urllib.request
response = urllib.request.urlopen('http://randomword.setgetgo.com/get.php')

我试过了

^{pr2}$

但我得到的只是

b'\xef\xbb\xbfcellepore\r\n'
b'\xef\xbb\xbfchough\r\n'
b'\xef\xbb\xbfparamide\r\n'
b'\xef\xbb\xbfunsiphon\r\n'
b'\xef\xbb\xbfadenopodous\r\n'
b'\xef\xbb\xbfsupertramp\r\n'
b'\xef\xbb\xbfEphraimite\r\n'
b'\xef\xbb\xbfosteostracan\r\n'
b'\xef\xbb\xbfrhizopodan\r\n'
b'\xef\xbb\xbftransiter\r\n'
b'\xef\xbb\xbfoneirocritically\r\n'

API服务说它将返回JSON,但看起来不像JSON。在

我想知道我的代码是否有问题,或者API服务没有按预期工作。在

谢谢!在


Tags: comapijson应用程序httpgetrequesturllib
1条回答
网友
1楼 · 发布于 2024-10-01 05:03:06

实际上,该服务没有返回JSON。如您所见,它返回纯文本并将Content-Type头设置为text/html,而不管我们在Accept头上发送什么:

>>> req = urllib2.Request('http://randomword.setgetgo.com/get.php', headers={"Accept": "application/json"})
>>> response = urllib2.urlopen(req)
>>> word = response.read()
>>> word
'\xef\xbb\xbfNinevitish\r\n'
>>> response.headers['Content-Type']
'text/html'

由于服务的文档记录很差,很难判断出发生了什么以及它实际期望什么。\xef\xbb\xbf前缀是一个UTF-8bom,因此如果您仍然想这样使用它,可以执行以下操作:

^{pr2}$

相关问题 更多 >