2016-10-04 7 views
1

C#とRestSharp 105.2.3を使用して簡単なREST/Jsonウィンドウクライアントを構築しています。すべてが美しく動作していますが、私が指定している追加のHTTPヘッダーは、Wiresharkのトレースに従って追加されていないようです。私は何かが欠けているのでしょうか、それとも私が使用すべきHTTPメソッドがありますか?RestSharp AddHeaderが機能しない

var client = new RestClient("http://example.com"); 
    client.Authenticator = new HttpBasicAuthenticator("username", password"); 

    var requestParams = new RequestItem 
    { Parameter1 = "test1", Parameter2 = "test2" }; 

    var request = new RestRequest("/sample/", Method.POST); 
    request.AddHeader("RequestId", "value"); 

    request.RequestFormat = DataFormat.Json; 
    request.Parameters.Clear(); 
    var requestParamsJson = request.JsonSerializer.Serialize(requestParams); 
    request.AddParameter("application/json; charset=utf-8", requestParamsJson, ParameterType.RequestBody); 
    IRestResponse<ResponseItem> response = client.Execute<ResponseItem>(request); 
+1

私はその 'request.Parameters.Clear();'呼び出しを考えています。ソースコードを見ると、 'AddHeader'はアイテムを' Parameters'コレクションに追加します。これをクリアします。 – Amy

+0

それはそれ!!!私はParameters.Clearメソッドはパラメータとコンテンツにのみ影響を与えたと思った。 –

+0

暑いぞ。私はそれを答えとして追加します。 – Amy

答えて

0

あなたはrequest.Parameters.Clear();呼び出しを削除する必要があります。以下に概説し、私はトレースにRequestIdヘッダを見ることができないよう

コードは簡単です。 Internally、RestSharpは、あなたが消去しているParametersコレクションにヘッダーを追加します。そのため、通話を削除するか、ヘッダーを追加する場所の上に移動して問題を解決します。

関連する問題