【问题标题】:VBA post request on a website API with parameters带有参数的网站 API 上的 VBA 发布请求
【发布时间】:2017-07-11 18:28:56
【问题描述】:

我想检索当时 kraken API 给出的不同价格,但我对 POST 请求的构造不是很熟悉。

我检索了一个可以发出请求但没有任何参数的代码:

Sub retrieve_price()
Const sUrl As String = "https://api.kraken.com/0/public/Ticker"

Dim oRequest As WinHttp.WinHttpRequest
Dim sResult As String

Set oRequest = New WinHttp.WinHttpRequest
With oRequest
    .Open "POST", sUrl, True
    .Send 
    .WaitForResponse
    sResult = .ResponseText
End With

Range("A1") = sResult


End Sub

kraken API information

来自他们编写的 kraken API 信息:

Get ticker information
URL: https://api.kraken.com/0/public/Ticker

Input:

pair = comma delimited list of asset pairs to get info on

(与随附图片或https://www.kraken.com/help/api#public-market-data上的相同)

但是添加这个参数我都试过了:

在我的加上:

.SetRequestHeader "pair", "ETHEUR"

还有:

.SetRequestHeader "Content-Type", "pair=ETHEUR"

或者改为写我的发送:

.Send ("pair=ETHEUR")

但是两种方法都不起作用,我不知道我应该如何进行。 我读了How are parameters sent in an HTTP POST request? 但我不明白如何应用帖子上写的内容 有人可以给我一些建议吗? 非常感谢!

【问题讨论】:

    标签: html vba post parameters request


    【解决方案1】:

    我想你想要一个GET 请求。

    如果您在 Web 浏览器中键入以下内容:

    https://api.kraken.com/0/public/Ticker?pair=ETHEUR

    你应该得到这样的回应:

    {"error":[],"result":{"XETHZEUR":{"a":["167.71714","1","1.000"],"b":
    ["167.65000","200","200.000"],"c":["167.71822","0.25164886"],"v":
    ["351548.13416062","386545.69665419"],"p":["169.62204","170.24439"],"t": 
    [50582,55183],"l":["151.00995","151.00995"],"h":
    ["190.98999","190.98999"],"o":"181.57867"}}}
    

    您应该能够解析此 JSON 响应以获取您需要的内容。

    【讨论】:

    • 确实,我不知道会这么简单。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2013-03-31
    • 2014-11-14
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多