首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python开放登录所需的API https协议

Python开放登录所需的API https协议
EN

Stack Overflow用户
提问于 2017-09-05 14:35:02
回答 2查看 258关注 0票数 0

我试图访问具有以下特性的API:

协议:https

方法:“获取”

网址:“https://api.wmcloud.com/data/v1//api/equity/getEqu.json?field=&listStatusCD=&secID=&ticker=&equTypeCD=A标题:”授权:承载“

所以如果我打开网址,我就能看到所有的数据。另一方面,我访问它的代码不起作用。我的代码是:

代码语言:javascript
复制
import httplib
httpClient = httplib.HTTPSConnection('api.wmcloud.com', '443',timeout=60)
url = 'https://api.wmcloud.com/data/v1//api/equity/getEqu.json?field=&listStatusCD=&secID=&ticker=&equTypeCD=A'
token='ae8820c8eb8ccd418dd8141b4c685d2d208c58a564a9fd2c22f8c95ac6a2ef23'   
alldata = httpClient.request('GET', url, headers={"Authorization": "Bearer " + token})

它在打印所有数据时不返回任何数据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-05 15:09:59

@yorah已经找到了问题的根源:为了发送HTTP请求,需要调用getresponse()

由于OP使用Python 2,@yorah的代码在Python 3中,这在OP的环境中可能不起作用,因此我想在Python 2中修复和重构解决方案,如下所示:

代码语言:javascript
复制
import httplib, urllib, json
conn = httplib.HTTPSConnection("api.wmcloud.com", 443, timeout=60)
token = "ae8820c8eb8ccd418dd8141b4c685d2d208c58a564a9fd2c22f8c95ac6a2ef23"
headers = {"Authorization": "Bearer " + token}
params = urllib.urlencode({"listStatusCD": "L", "secID": "000001.XSHE", "ticker":"000001", "equTypeCD": "A"})
conn.request("GET", "/data/v1/api/equity/getEqu.json?" + params, "", headers)
r1 = conn.getresponse()
print r1.status, r1.reason
result = json.load(r1)
print len(result['data'])  # Expect: 1

请注意,加载响应数据需要一些时间。

有关Python2中的相关文档,请参阅https://docs.python.org/2.6/library/httplib.html

票数 0
EN

Stack Overflow用户

发布于 2017-09-05 14:56:38

来源:https://docs.python.org/3/library/http.client.html

发送request之后,您还需要:

  • 得到回应
  • 读取响应(并解码)

以下是你想做的事:

代码语言:javascript
复制
import httplib
httpClient = http.client.HTTPSConnection('api.wmcloud.com', '443', timeout=60)
url = 'https://api.wmcloud.com/data/v1//api/equity/getEqu.json?field=&listStatusCD=&secID=&ticker=&equTypeCD=A'
token='ae8820c8eb8ccd418dd8141b4c685d2d208c58a564a9fd2c22f8c95ac6a2ef23'
httpClient.request('GET', url, headers={'Authorization': 'Bearer ' + token})

alldata = httpClient.getresponse()

print(alldata.read().decode())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46057587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档