मैं क्लाइंट से ASP.NET MVC4 एप्लिकेशन में एक स्ट्रिंग को प्रेषित करने का प्रयास कर रहा हूं।पोस्ट स्ट्रिंग एएसपी.नेट वेब एपीआई एप्लीकेशन - रिटर्न शून्य
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:49032/api/test");
request.Credentials = new NetworkCredential("user", "pw");
request.Method = "POST";
string postData = "Short test...";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
dataStream.Close();
response.Close();
Console.ReadLine();
:
लेकिन मैं स्ट्रिंग (कंसोल आवेदन) संचारित करने के लिए स्ट्रिंग प्राप्त कर सकते हैं नहीं है, या तो यह रिक्त है या पोस्ट विधि नहीं पाया जा सकता है (404 त्रुटि)
क्लाइंट कोड ASP.NET वेब एपीआई नियंत्रक:
public class TestController : ApiController
{
[Authorize]
public String Post(byte[] value)
{
return value.Length.ToString();
}
}
उस मामले मैं "पोस्ट" विधि कॉल करने में सक्षम हूँ में, लेकिन "मूल्य" NULL
है। यदि मैं विधि हस्ताक्षर को (स्ट्रिंग मान) में बदलता हूं, तो इसे कभी नहीं कहा जाएगा।
यहां तक कि "अधिकृत" सेटिंग के बिना भी "यह" एक ही अजीब व्यवहार है। -> तो उपयोगकर्ता प्रमाणीकरण के साथ इसका कोई लेना-देना नहीं है।
कोई विचार क्या मैं गलत कर रहा हूं? मैं किसी भी मदद के लिए आभारी हूं।
बहुत रोचक, अगर मैं आपके ग्राहक कोड का उपयोग करता हूं, तो यह काम करता है। यह var डेटा = "= ..." के साथ काम करता है; अगर मैं "=" को हटा देता हूं तो यह काम नहीं करता है। – user1011394
@ user1011394, हाँ, यह एक डब्ल्यूटीएफ है! चेकआउट [सर्विसस्टैक] (http://www.servicestack.net/)। तुम ईसे प्यार करने लगो गे। –
बहुत धन्यवाद डारिन। यह वास्तव में भारी है ... – user1011394