私は、VBAのこの側面を活用することに全く新しいことに気づいて私のポストを序文にします。VBA HTTP POST要求へのパラメータの追加
私は個人的に持っている認証コードを使用してHTTP "POST"リクエストを行う必要があるWebサービスからトークンをリクエストすることに興味があります。私はこのコードを、私の要求の中の他のパラメータの中に含める必要がありますが、それをうまくやって苦労しています。私はオンラインで見つけるどれ詳細は以下の通り(すべてのIDが偽造されている)は、Javaでの彼らの要求をフォーマット:
POST /services/oauth2/token HTTP/1.1
Host: "YourURL.com"
grant_type=authorization_code&code=aPrxsmIEeqM9PiQroGEWx1UiMQd95_5JUZ
VEhsOFhS8EVvbfYBBJli2W5fn3zbo.8hojaNW_1g%3D%3D&client_id=3MVG9lKcPoNI
NVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCs
cA9GE&client_secret=1955279925675241571&
redirect_uri=https%3A%2F%2Fwww.mysite.com%2Fcode_callback.jsp
このような要求を生産は個人的に本当の闘いとなっています。これらのパラメータは、この要求が失敗する原因となっている理由として
Dim request As WinHttp.WinHttpRequest
Dim
client_id,
redirect_uri,
grant_type,
client_secret,
authcode,
result,
token_url,
As String
サブとtestmod()
Set request = New WinHttp.WinHttpRequest
client_id = "MyClientID"
client_secret = "MyClientSecret"
grant_type = "authorization_code"
redirect_uri = "MyRedirectURI"
authcode = "MyAuthorizationCode"
token_url = "MyTokenURL" <--- No specified query string appended
With request
.Open method:="POST", Url:=token_url
''''Including POST Params with Send method''''
.Send ("{""code"":" & authcode &
",""grant_type"":authorization_code,""client_id"":" & client_id &
",""client_secret"":" & client_secret & ",""redirect_uri"":" &
redirect_uri & "}")
''''This returns error code 400 denoting a bad request''''
Debug.Print .StatusText
end with
エンドサブ
任意のアイデア:以下は私のコードの関連するコンポーネントですか?どんな洞察力も大いにありがとう!
:
あなたがに投稿しているサーバーによっては、次のようなヘッダーを設定する必要があるかもしれません – garbb
また、私がhttpリクエスト/レスポンスを混乱させて[fiddler]をチェックアウトしている場合(https: //www.telerik.com/fiddler)私は何が起こっているかを見るのに非常に役立つと分かっています。 – garbb