मैं ASP.NET में एक वेब अनुरोध बना रहा हूं और मुझे शरीर में डेटा का एक गुच्छा जोड़ने की आवश्यकता है। मैं उसको कैसे करू?
var request = HttpWebRequest.Create(targetURL);
request.Method = "PUT";
response = (HttpWebResponse)request.GetResponse();
मैं ASP.NET में एक वेब अनुरोध बना रहा हूं और मुझे शरीर में डेटा का एक गुच्छा जोड़ने की आवश्यकता है। मैं उसको कैसे करू?
var request = HttpWebRequest.Create(targetURL);
request.Method = "PUT";
response = (HttpWebResponse)request.GetResponse();
जवाबों:
साथ में HttpWebRequest.GetRequestStream
Http://msdn.microsoft.com/en-us/library/d4cek6cc.aspx से कोड उदाहरण
string postData = "firstone=" + inputData;
ASCIIEncoding encoding = new ASCIIEncoding ();
byte[] byte1 = encoding.GetBytes (postData);
// Set the content type of the data being posted.
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
// Set the content length of the string being posted.
myHttpWebRequest.ContentLength = byte1.Length;
Stream newStream = myHttpWebRequest.GetRequestStream ();
newStream.Write (byte1, 0, byte1.Length);
मेरे अपने कोड से:
var request = (HttpWebRequest)WebRequest.Create(uri);
request.Credentials = this.credentials;
request.Method = method;
request.ContentType = "application/atom+xml;type=entry";
using (Stream requestStream = request.GetRequestStream())
using (var xmlWriter = XmlWriter.Create(requestStream, new XmlWriterSettings() { Indent = true, NewLineHandling = NewLineHandling.Entitize, }))
{
cmisAtomEntry.WriteXml(xmlWriter);
}
try
{
return (HttpWebResponse)request.GetResponse();
}
catch (WebException wex)
{
var httpResponse = wex.Response as HttpWebResponse;
if (httpResponse != null)
{
throw new ApplicationException(string.Format(
"Remote server call {0} {1} resulted in a http error {2} {3}.",
method,
uri,
httpResponse.StatusCode,
httpResponse.StatusDescription), wex);
}
else
{
throw new ApplicationException(string.Format(
"Remote server call {0} {1} resulted in an error.",
method,
uri), wex);
}
}
catch (Exception)
{
throw;
}
अपडेट करें
मूल
var request = (HttpWebRequest)WebRequest.Create("https://example.com/endpoint");
string stringData = ""; // place body here
var data = Encoding.Default.GetBytes(stringData); // note: choose appropriate encoding
request.Method = "PUT";
request.ContentType = ""; // place MIME type here
request.ContentLength = data.Length;
var newStream = request.GetRequestStream(); // get a ref to the request body so it can be modified
newStream.Write(data, 0, data.Length);
newStream.Close();
Stream
वस्तु जो newStream
अनुरोध के निकाय को सीधे लिखने के लिए इंगित करती है। इसे कॉल द्वारा एक्सेस किया जाता है HttpWReq.GetRequestStream()
। अनुरोध पर कुछ और सेट करने की आवश्यकता नहीं है।
इस विषय में उत्तर सभी महान हैं। हालाँकि मैं एक और प्रस्ताव करना चाहूंगा। सबसे अधिक संभावना है कि आपको एक एपीआई दिया गया है और आप इसे अपने सी # प्रोजेक्ट में चाहते हैं। पोस्टमैन का उपयोग करके, आप एपी कॉल को वहां सेटअप और परीक्षण कर सकते हैं और एक बार ठीक से चलने के बाद, आप बस 'कोड' पर क्लिक कर सकते हैं और जिस अनुरोध पर आप काम कर रहे हैं, वह एसी # स्निपेट पर लिखा गया है। इस तरह:
var client = new RestClient("https://api.XXXXX.nl/oauth/token");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic N2I1YTM4************************************jI0YzJhNDg=");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("grant_type", "password");
request.AddParameter("username", "development+XXXXXXXX-admin@XXXXXXX.XXXX");
request.AddParameter("password", "XXXXXXXXXXXXX");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
उपरोक्त कोड नगेट पैकेज रेस्टशार्प पर निर्भर करता है, जिसे आप आसानी से स्थापित कर सकते हैं।