次のMVCメソッドがあります。
[System.Web.Mvc.HttpPost]
public ActionResult Listen(string status)
{
CFStatusMessage statusMessage = new CFStatusMessage();
if (!string.IsNullOrEmpty(status))
{
statusMessage = Newtonsoft.Json.JsonConvert.DeserializeObject<CFStatusMessage>(status);
}
return Content(Server.HtmlEncode(status));// View(statusMessage);
}
上記のメソッドを他のアプリケーション..(コンソール)から呼び出そうとしています。HttpWebRequest を使用して MVC メソッドを呼び出しています。以下のコードを使用すると、メソッドを呼び出すことができますが、パラメーターは常に空の文字列になります。
string content = "{\"status\":\"success\",\"payload\":\"some information\"}";
string url = "http://myrl.com";
var httpWRequest = (HttpWebRequest) WebRequest.Create(url);
httpWRequest.Method = "POST";
httpWRequest.ContentType = "text/json";
var encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(string.Format("status={0}", Uri.EscapeDataString(content)));
httpWRequest.ContentLength = data.Length;
Stream stream = httpWRequest.GetRequestStream();
stream.Write(data, 0, data.Length);
var response = (HttpWebResponse)httpWRequest.GetResponse();
これにより、Listen メソッドが呼び出されますが、status パラメータは常に空白になります。一方、パラメーターとして json 文字列 {status:"success",payload:"some information"} が必要です。
私は何を間違っていますか?
PS:実際のコンテンツを送信しながら、以下のステートメントも試しました。
byte[] data = encoding.GetBytes(content);
よろしく、M