2013-11-15 12 views
40

मुझे this Nuget से HttpClient मिला है।HttpClient का उपयोग कर डेटा कैसे पोस्ट करें?

जब मैं डेटा प्राप्त करने मैं इसे इस तरह से करना चाहते हैं:

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

लेकिन समस्या यह है कि मैं डेटा पोस्ट करने के लिए पता नहीं कैसे है? मुझे एक पोस्ट अनुरोध भेजना है और इन मानों को इसके अंदर भेजना है: comment="hello world" और questionId = 1। ये एक वर्ग की संपत्ति हो सकती है, मुझे नहीं पता।

अद्यतन मैं HttpContent को उन मूल्यों को जोड़ने के बारे में के रूप में पद विधि इसकी आवश्यकता है पता नहीं है।

await client.PostAsync(uri, content); 

कुछ इस तरह: httClient.Post(string, HttpContent);

+0

कोई भी मदद नहीं कर सकता? :) – user2970840

+0

क्या आपने पोस्ट विधि का उपयोग करने की कोशिश की? – Patrick

+0

आपको अपनी पोस्ट में कौन सी सामग्री भेजनी चाहिए (यदि आप एपीआई का पालन कर रहे हैं) के लिए आपको दस्तावेज़ों का पालन करना चाहिए। फिर, बस एक HttpContent भरें और [PostAsync] (http://msdn.microsoft.com/en-us/library/hh138190 (v = vs.110) .aspx का उपयोग करें) क्या आपने कोशिश की? – Patrick

उत्तर

85

आप उपयोग करने की आवश्यकता

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); 

और अगर यू पोस्ट के बाद प्रतिक्रिया प्राप्त करने की आवश्यकता है, तो आप का उपयोग करना चाहिए:

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

उम्मीद है कि यह मदद करता है;)

+0

प्रतिक्रिया 'अप्राप्य प्रविष्टि' है। शायद मैं कहीं और – user2970840

+6

या कम शब्दकोश शाब्दिक एक गलती है: 'वर formContent = नए FormUrlEncodedContent (नया शब्दकोश <स्ट्रिंग, स्ट्रिंग> { {" टिप्पणी ", टिप्पणी}, {" questionId ", questionId} }); ' – hkarask

-2

अपलोडस्ट्रिंगएसिंक विधि का उपयोग करें:

 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

आह हाँ, मैं वेब क्लाइंट के लिए इतना उपयोग किया जाता हूं, जब मैं सवाल पढ़ रहा था तो मेरे सिर में था। मैंने अभी तक HttpClient का उपयोग नहीं किया है। माफ़ कीजिये! –

संबंधित मुद्दे