2016-05-04 29 views
0

現在、MSXML2.ServerXMLHTTPを使用してPOST HTTPリクエストを送信しようとしています。 私の要求が承認されるようにカスタムヘッダー "Auth"を追加する必要がありますが、動作していないようです。 は、ここに私のポスト関数のコードです:MSXML2.ServerXMLHTTPのカスタムヘッダー

Function post(path As String, authToken As String, postData As String) As String 
    Dim xhr As Object 
    Dim message As String 
On Error GoTo error: 

    Set xhr = CreateObject("MSXML2.ServerXMLHTTP") 
    xhr.Open "POST", path, False 
    xhr.setRequestHeader "Content-Type", "application/json" 
    xhr.setRequestHeader "Auth", authToken 
    xhr.send postData 

    If xhr.Status = 200 Then 
    message = xhr.responseText 
    Else 
    message = xhr.Status & ": " & xhr.statusText 
    End If 

    Set xhr = Nothing 
    post = message 
error: 
    Debug.Print "Error " & Err.Number; ":" & Err.Description 
End Function 

そして、私は(私は自分のコンピュータ上で別の言語を使用しているため、メッセージが実際に翻訳された)「が見つかりませんでしたエラーヘッダー要求さ-2147012746」で終わります。

しかし、 "Microsoft.XMLHTTP"オブジェクトでこの問題は発生しませんでした。 何か間違っていますか?

ありがとうございます。

+0

確かにあなたのヘッダーには、この

xhr.setRequestHeader "Auth", authToken 

から

変更はない "認可"、 "認証" と命名されましたか? 'xhr.SetRequestHeader"認証を試みてください、authToken' –

+0

はい、それは "Auth"という名前であり、悲しいことに、現時点では変更できません(それは私によって作成されたものではなく、複数のクライアントによって既に使用されています):( –

答えて

0

文字列リテラルを使用するには、SetRequestHeaderの呼び出しを変更してみてください。私はauthTokenに値が設定されていないときに問題を再現しました。この

xhr.setRequestHeader "Auth", "testdatahere" 
+0

* authToken *が空の文字列でない場合は、実際に変数で動作します。私は本当にランダムな認証値を送信するのではなく、動作している限り...素晴らしい一日を! –

関連する問題