2013-11-15 15 views
40

私はthis HttpClientをNugetから入手しました。HttpClientを使用してデータを投稿するには?

私はデータを取得したい場合は、私はそれをこのように実行します。

var response = await httpClient.GetAsync(url); 
var data = await response.Content.ReadAsStringAsync(); 

しかし、問題は、私はデータをポストする方法がわからないということですか? 投稿リクエストを送信し、その中に以下の値を送信する必要があります:comment="hello world"questionId = 1。これらはクラスのプロパティになる可能性があります。わかりません。

更新私はこれらの値をポストメソッドが必要とするのでHttpContentに追加する方法を知りません。 httClient.Post(string, HttpContent);

+0

誰も助けてくれませんか? :) – user2970840

+0

Postメソッドを使用しようとしましたか? – Patrick

+0

投稿に含めるべき内容(APIに従っている場合)については、ドキュメントに従ってください。次に、HttpContentを入力し、[PostAsync](http://msdn.microsoft.com/en-us/library/hh138190(v=vs.110).aspx)を使用してみてください。 – Patrick

答えて

85

あなたが使用する必要があります。

await client.PostAsync(uri, content); 

そのような何か:

var comment = "hello world"; 
var questionId = 1; 

var formContent = new FormUrlEncodedContent(new[] 
{ 
    new KeyValuePair<string, string>("comment", comment), 
    new KeyValuePair<string, string>("questionId", questionId) 
}); 

var myHttpClient = new HttpClient(); 
var response = await myHttpClient.PostAsync(uri.ToString(), formContent); 

を、Uは、ポストの後の応答を取得する必要がある場合は、あなたが使用する必要があります。

var stringContent = await response.Content.ReadAsStringAsync(); 

希望する;)

+0

レスポンスは 'Unprocessable entry'です。多分私はどこか別の場所 – user2970840

+6

または短い辞書リテラルの間違いを持っ​​ている: 'VARのformContent =新しいFormUrlEncodedContent(新しい辞書<文字列、文字列> { {、 "コメント" のコメント}、 { "questionId"、questionId} }); ' – hkarask

-2

UploadStringAsyncメソッドを使用:

 WebClient webClient = new WebClient(); 
     webClient.UploadStringCompleted += (s, e) => 
      { 
       if (e.Error != null) 
       { 
        //handle your error here 
       } 
       else 
       { 
        //post was successful, so do what you need to do here 
       } 

      }; 


     webClient.UploadStringAsync(new Uri(yourUri), UriKind.Absolute), "POST", yourParameters);  
+2

ありがとう、しかし私はこの' HttpClient'が 'WebClient'よりも優れていると思います。より簡単で清潔。ではない? – user2970840

+0

ああ、私はWebClientによく慣れています。私は質問を読んでいたとき、私の頭の中でそれを持っていました。私はまだHttpClientを使用していません。ごめんなさい! –

関連する問題