Python 3 - 带有 urllib.request 返回 HTML 数据的 POST 请求

标签 python api post python-3.x urllib

我正在尝试使用 POST 请求访问网站的 API,但它返回的是 HTML,我不知道为什么。

import urllib.request
url = 'https://matchbook.com'
loginReq = '"method": "/bpapi/rest/security/session", "params":{"username": "xxxxx","password": "xxxxx"}'

req = urllib.request.Request(url, loginReq.encode('utf-8'))
response = urllib.request.urlopen(req).read()
print (response)    

这会返回一个 HTML 流,它基本上表示我正在使用不受支持的 Internet Explorer 版本,我应该考虑升级到更新的版本。

我花了一些时间在网上查找,但很难找到有关 Python 3 中获取/发布/放置/删除请求的任何详细信息,我发现的大部分有用信息都涉及使用 Python 中的“请求”模块2. 切换到 Python 2 会使这更容易吗?

这是他们在文档中提供的信息:

资源网址: 网址:matchbook.com URN:/bpapi/rest/security/session

示例请求: 发布/安全/ session { “用户名”:“j_henry”, “密码”:“**

示例响应: { “ session token ”:“1418_1234567890”, “用户 ID”:1418, "account": {//与 GET/account API 响应相同。 ...

最佳答案

问题几乎可以肯定是您错误地向 API 发送了数据;也就是您的 loginReq 变量。

您需要使用 curl 或某种等效工具来准确确定需要发布的参数和值。类似的东西

curl --data "method:/bpapi/rest/security/session&params={username=j_henry&password=**}" https://www.matchbook.com

一旦收到请求,您就可以开始担心实际对其进行编程了。

关于Python 3 - 带有 urllib.request 返回 HTML 数据的 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25735314/

相关文章:

python - Python 的 a, b = b, a 是如何工作的?

javascript - 如何解析嵌套在 bls.gov 列表中的 JSON 以在 React-chartjs-2 中使用

ruby-on-rails - 使用 Rails 将外部 JSON 保存到数据库

php - 如何解决iis error 500 upload file using php

post - RestTemplate 将图像上传为 MultipartFile,内容类型为 image/jpg

android - 如何在 Android 中使用 HTTPClient 以 JSON 格式发送 POST 请求?

python - 当 int 输入为空/空白时如何中断循环?

Python datetime.strptime - 解析复杂的字符串

python - 当等于或大于 0 时,将三个连续数字相加 - Python

api - 使用谷歌地图api计算两点之间的距离?