python请求响应(二进制)

时间:2016-06-28 02:17:44

标签: python binary response

我正在尝试用Python做一个小项目来使用TD Ameritrade API。在TD的API指令中,它表示PriceHistory的请求URL是:

https://apis.tdameritrade.com/apps/100/PriceHistory?source=##SourceID#>& startdate =& enddate =& requestvalue =& intervaltype =& periodtype =& extended =& intervalduration =& period =& requestidentifiertype =我当然需要用我自己的SourceID替换SourceID。

根据手册的例子,回复是:

<00> 00 00 00 01 00 04 41 4D 54 44 00 00 00 00 02 41 97 33 33 41 99 5C 29 41 90 3D 71 41 91 D7 0A 47 0F C6 14 00 00 01 16 6A E0 68 80 41 93 B4 05 41 97 1E B8 41 90 7A E1 41 96 8F 57 46 E6 2E 80 00 00 01 16 7A 53 7C 80 FF FF

还附上另一张表来解释上述每个数字的含义。

所以我写了这样的程序:

EOR_url = (the above URL, omitted here)
r = request.get(EOD_url)
print r.content

它不打印任何东西。如何像上表中给出的那样显示或打印出响应?我相信我还是不太了解响应对象。

由于

2 个答案:

答案 0 :(得分:0)

更新

EOR_url = (the above URL, omitted here)
r = request.get(EOR_url)
h = binascii.b2a_hex(r.content)
print h

现在它正在打印出与TD API指令中给出的结果相同的结果:

<00> 00 00 00 01 00 04 41 4D 54 44 00 00 00 00 02 41 97 33 33 41 99 5C 29 41 90 3D 71 41 91 D7 0A 47 0F C6 14 00 00 01 16 6A E0 68 80 41 93 B4 05 41 97 1E B8 41 90 7A E1 41 96 8F 57 46 E6 2E 80 00 00 01 16 7A 53 7C 80 FF FF

指令确实说: 00 00 00 01,4字节,符号计数为1 00 04,2字节,符号长度为4 41 4D 54 44,4个字节,符号为AMTD 00,1个字节,错误代码为0(OK) 00 00 00 02,4个字节,条形数为2 41 97 33 33,4个字节,收盘价是18.90 41 99 5C 29,4个字节,高为19.17 41 90 3D 71,4字节,低是18.03 41 91 D7 0A,4字节,开放是18.23 47 0F C6 14,4字节,体积为3,680,608 ...... FF FF,2个字节,终结符

所以我现在的问题是如何根据指令将响应对象的内容转换为实数?

如何将结果转换为实数?

感谢

答案 1 :(得分:-1)

也许您应该验证get请求实际返回的内容。您可以使用Postmaster或Advanced Rest Client执行GET请求并查看响应。我怀疑这样做会启发实际发生的事情。如果你已经这样做了,你可以让我知道答案是什么吗?

根据我使用requests模块的经验,它在捕获响应方面非常可靠。