我试图从客户端传输字符串到ASP.NET MVC4应用程序。POST字符串到ASP.NET Web Api应用程序 - 返回null
但我不能接收字符串,或者它为空或POST方法无法找到(404错误)
客户端代码发送字符串(控制台应用程序):
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();
ASP.NET网页API控制器:
public class TestController : ApiController
{
[Authorize]
public String Post(byte[] value)
{
return value.Length.ToString();
}
}
在这种情况下,我能叫“邮报”的方法,但“价值” NULL
。 如果我将方法签名更改为(字符串值)比它永远不会调用。
即使“没有”[授权]设置它也有相同的奇怪行为。 - >所以它与用户认证无关。
任何想法我做错了什么? 我很感激任何帮助。
非常有趣,如果我使用您的客户端代码,它的工作原理。 它适用于var data =“= ...”;如果我删除“=”它不起作用。 – user1011394
@ user1011394,是的,这是一个跆拳道!签出[ServiceStack](http://www.servicestack.net/)。你会喜欢它的。 –
非常感谢Darin。这真的很重...... – user1011394