ASP.NET MVC 4 Web アプリケーションで Rest Webservice を作成しました。サービスを利用して requestbody を含むリクエストを送信する場合、入力パラメータ CoreMessage アイテムは常に null です。サンプル チュートリアルとサンプル コードをいくつか見ましたが、バグを修正できませんでした。
私の残りのクライアントのいくつかのコード
CoreMessage message = new CoreMessage() { Source = "Dummy", Date = DateTime.Now, Data = "abcd" };
var url = "http://localhost:12294/api/message";
var method = "POST";
string reponseAsString = "";
try
{
var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = method;
using (Stream requestStream = request.GetRequestStream())
using (StreamWriter writer = new StreamWriter(requestStream))
{
writer.Write(message);
}
}
catch (Exception ex)
{
reponseAsString += "ERROR: " + ex.Message;
}
Post 関数を使用したコントローラーは次のようになります
public MessageRepository repository = new MessageRepository();
public HttpResponseMessage PostMessage(CoreMessage item)
{
bool status = repository.TransmitMessage(item);
var response = Request.CreateResponse<bool>(HttpStatusCode.Created, status);
return response;
}
私のモデル
public class CoreMessage
{
public string Source { get; set; }
public DateTime Date { get; set; }
public string Data { get; set; }
}