1

C# HttpClient クラスを使用して、Cookie を使用して Http Get メッセージを送信しようとしています。 HttpClient.GetAsyncURLを受け入れるだけです。なので、その方法は使えません。そのHttpClient.SendAsyncメソッドを使用すると、次の方法で Cookie を送信できることがわかりました。

HttpRequestMessage GETRequest = new HttpRequestMessage(HttpMethod.Get, completeUrl);
GETRequest.Content = new FormUrlEncodedContent(formVals);
HttpResponseMessage GETResponse = client.SendAsync(GETRequest).Result;

しかし、実行すると、それは言って失敗します -

「この動詞タイプのコンテンツ本文を送信できません」

Get メッセージは、データの投稿ではなく取得に理想的であることを知っています。しかし、私の状況では、クライアントの設定を保存するためにCookieがクライアントに保存され、Http Getメッセージを介して(HttpClientクラスを介して)それらをクライアントに送信する必要があります。

HttpClient オブジェクトを再初期化したくありません。これにより、SessionID が変更されます。Get メッセージにコンテンツを追加したくありません。Get message cookie を追加の値で更新する他の方法があるかどうかを尋ねているだけです。

この問題の対処方法を教えてください。事前にご協力いただきありがとうございます。

4

1 に答える 1

3

この回答に示されているように、CookieContainer クラスを使用する必要があります。これにより、Cookie が HTTP ヘッダー (配置される場所) に設定されます。

于 2013-01-28T15:50:51.003 に答える