私の最新のプロジェクトでは、Android電話でユーザー名とパスワードを入力し、JSON形式で保存し、新しいJSONで構成データを返すASP.NET MVCサーバーにPOSTしたいと考えています。ここでJSON文字列がちょうどテストのためであるJSONをAndroidからMVCコントローラに渡すにはどうすればいいですか?
String json = "{\"x\": \"val1\",\"y\":\"val2\"}";
URL url = new URL("http://xxxxx/Home/GetData");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setReadTimeout(10000);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json"); // have tried without this
conn.setRequestProperty("Content-Length", json.getBytes().length + "");
conn.setDoOutput(true);
os = conn.getOutputStream();
os.write(json.getBytes("UTF-8"));
os.close();
conn.connect();
:
アンドロイド(部分コード):私は持っている、これまで
。
MVC:
[HttpPost]
public ActionResult GetData(String request)
{
Debug.WriteLine(request.Length); // not relevant to the question
var data = new { Name = "Test", Age = "39" };
return Json(data);
}
テストデータをJSONを返し
。
MVCコントローラの文字列引数が間違っている可能性があります。私は受け入れを試みました。バイト[]、私はいつもNULLで終わる。
代替案のご提案やご提案はありがとうございます。
乾杯
にsendtているいただきました!あなたは何掲示されていることは、元の文字列のバイトシーケンスであるか見当もつかないとき@デイヴィッドのようなもののについて。私の問題はコントローラーで受信する方法です(これはjsonの内容についてはわかりません)。 – ludolover
@ludolover: "元の文字列からのバイト"のために、投稿要求の内容本文が何とか異なっていますか?リクエスト本体に単純なJSONを送信するのと比べて、実際のリクエストはどのように見えますか?このデータ・サーバー側では、サーバー側のコードがその構造を認識していないということで何をしていますか? – David