[英]How to pass JSON from Android to MVC controller?
在我的最新项目中,我希望用户在Android手机上输入名称和密码,将其保存为JSON格式,然后将其发布到ASP.NET MVC服务器,该服务器应以新的JSON返回配置数据。
到目前为止,我有:
Android(部分代码):
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();
此处的json字符串仅供测试。
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控制器中的string参数在这里可能是错误的。 我尝试接受例如byte [],但是我总是以NULL结尾。
对此有任何帮助或建议的替代方法!
干杯
如果这是要发布到服务器的内容:
{
"x": "val1",
"y": "val2"
}
然后,方法参数应反映那些键/值对。 像这样:
public ActionResult GetData(string x, string y)
这将遍历您在json中发布的所有内容。 Prettu非常类似于@David,但是当您不知道将什么发送到GetData
public ActionResult GetData()
{
foreach (var key in Request.Form.AllKeys)
{
//This will iterate through everything in your post data
var value = Request.Form[key];
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.