2014-07-14 10 views
12

से पोस्ट जेसन कैसे भेजना है सी # से एएसपी.Net वेब एपीआई को POST अनुरोध करना संभव है। मैंने जेसन बनाने के लिए न्यूटॉन्सॉफ्ट डीएल फाइलों का उपयोग किया है, लेकिन, मैं इसे एपीआई को भेजने में सक्षम नहीं हूं।सी # से एएसपीनेट वेब एपीआई

मेरे कोड है:

 Login login = new Login 
     { 
      userid = username.Text, 
      pass = pass.Text 
     }; 
     string json = JsonConvert.SerializeObject(login, Formatting.Indented); 

कैसे वेब एपीआई को यह json भेजने के लिए, और एक प्रतिक्रिया प्राप्त करने के लिए?

संपादित

string url = "myurl"; 


     var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); 
     httpWebRequest.ContentType = "application/json; charset=utf-8"; 
     httpWebRequest.Method = "POST"; 
     httpWebRequest.Accept = "application/json; charset=utf-8"; 

     using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
     { 

      json = json.Replace("\r\n",""); 
      //json = json.Replace("\",", "\"," + "\"" +"\u002B"); 
      streamWriter.Write(json); 
      streamWriter.Flush(); 
      streamWriter.Close(); 
     } 

     var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
     using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
     { 
      var result = streamReader.ReadToEnd(); 
      pass.Text = result.ToString(); 
     } 
+0

मैं [वेब क्लाइंट] (http://stackoverflow.com/questions/11081760/upload-json-via-webclient) का उपयोग करूंगा। StackOverflow पर इसका उपयोग करने के लिए कई उदाहरण हैं। यह 'HttpWebRequest' – James

उत्तर

1

आप एक अनुरोध बनाना HttpWebRequest वर्ग का उपयोग करें और StreamWriter का उपयोग अनुरोध के साथ अपने Json लिखने के लिए और अंत में वेब एपीआई से HttpWebResponse मिल सकती है।

var httpWebRequest = (HttpWebRequest)WebRequest.Create("path/api"); 
httpWebRequest.ContentType = "text/json"; 
httpWebRequest.Method = "POST"; 
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
{ 
    streamWriter.Write(json); 
    streamWriter.Flush(); 
} 
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
+0

से कम शामिल है मैंने पहले ही यह किया था। लेकिन मुझे सफलता संदेश को झूठा नहीं मिल रहा है। कृपया संपादन देखें। – Roshan

+0

आपको जो जवाब मिल रहा है वह स्थिति कोड क्या है। –

+0

सफलता: झूठा संदेश था जिसे मैं प्राप्त करता था। मैंने इसे काम किया। मैं इसे एक उत्तर के रूप में पोस्ट कर रहा हूं। – Roshan

10

मैं यह काम, कुछ संपादन होने से बनाया है। जेसन ऑब्जेक्ट को सीधे क्रमबद्ध करने के बजाय, मैंने एक वर्ग का उपयोग किया, और इसे मान दिया, और जावास्क्रिप्टसेरियलाइज़र का उपयोग करके इसे क्रमबद्ध किया। आपकी मदद शेखर के लिए धन्यवाद।

 var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); 
     httpWebRequest.ContentType = "application/json; charset=utf-8"; 
     httpWebRequest.Method = "POST"; 
     httpWebRequest.Accept = "application/json; charset=utf-8"; 

     using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
     { 
      string loginjson = new JavaScriptSerializer().Serialize(new 
      { 
       userid = username.Text, 
       password = pass.Text 
      }); 

      streamWriter.Write(loginjson); 
      streamWriter.Flush(); 
      streamWriter.Close(); 

      var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
      using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
      { 
       var result = streamReader.ReadToEnd(); 
       pass.Text = result.ToString(); 
      } 
     } 
संबंधित मुद्दे