2016-08-23 12 views
1

こんにちは私はAPIを呼び出し、winhttpリクエストとGETメソッドを使用しています。私はsendメソッドでjsonスタイルのパラメータを渡していますが、受け入れられません。私はエラーメッセージで終わります:VBA RESTful API GETメソッドの問題

{"code": "INS03"、 "description": "イベントIDが必要です"、 "requestId": "_ 181603230829162847306080"、 "data":{}、 "validationErrors":私が実際にイベントIDパラメータを渡していますので、以下のように、奇妙なようでヌル}

inventory_URL = "https://api.stubhub.com/search/inventory/v1" 

    Dim oRequest As WinHttp.WinHttpRequest 
    Dim sResult As String 

    Set oRequest = New WinHttp.WinHttpRequest 
    With oRequest 
     .Open "GET", inventory_URL, True 
     .setRequestHeader "Authorization", "Bearer " & access_token 
     .setRequestHeader "Accept", "application/json" 
     .setRequestHeader "Accept-Encoding", "application/json" 
     .send ("{""eventid"":""9445148""}") 
     .waitForResponse 
     sResult = .responseText 
     Debug.Print sResult 
     sResult = oRequest.Status 
     Debug.Print sResult 
    End With 

は私のコードですべての問題はありますか?

GETリクエストクエリ文字列の場合は、事前に

ヴァディム

+0

私はそれが何も変わるとは思わないが、 '.send(" {"" eventid "":9445148} ")'のかっこは削除する必要があります。 「これは混乱しています。どうして括弧を使うのはなぜですか?](http://stackoverflow.com/documentation/vba/1179/procedure-calls/3818/this-is-confusing-why-not-just-always-use-parentheses#t = 201608231909481978335)をDocs.SOに掲載しています。なぜあなたはそれを習慣にしたら後部であなたを噛んでしまうのでしょうか? –

+0

'.send"を試しましたか?9445148 "'? APIのドキュメントでURLが期待していることは何ですか? –

+0

私は括弧について同意します。純粋な.send "944518"もうまくいくかもしれませんが、私はそれを正確にはしませんでしたが、非常に一番上のinventory_URL文字列に直接パラメータを挿入することで回避できます。私はこのAPIが安らかな呼び出しをサポートしていると思いますので、今のところそれに固執していきます。可能なことは.send "...."は別の角度からの同じテクニックです。本当にありがたいヒントのおかげで、私はかっこの習慣を詳しく見守ります! –

答えて

1

ありがとう構成する必要があります。 あなたのデータはSendではなく、クエリ文字列に渡すことはできません。

.Open "GET", inventory_URL & "?eventid=9445148", True

チェックGET vs POST

+0

うまくいきました、私はそれが私が何かを送る必要があると思っていたが、今私はGETでそれがすべてURL文字列にある必要はないと思っていると思っていた、キーの問題だと思う。 –

+0

はいそれが問題でした。私はそれが助けてうれしいです! – dee

関連する問題