gpt4 book ai didi

android - 从 Android 应用程序获取/发布数据到 MVC3 网站和 viseverse

转载 作者:行者123 更新时间:2023-11-29 22:12:03 25 4
gpt4 key购买 nike

我要开发一个 Android 应用程序,我以前做过几次,但现在的诀窍是我需要访问数据库(不是设备中的 sqllite)。我们之前做过一个网站,它具有我需要的所有功能。所以我的想法是使用那个网站(MVC3)从数据库中获取信息,并从App发送信息到数据库。你们对我如何编码有什么想法吗?我想我需要的是使用 Json 或 Gson 从网站接收数据到应用程序,然后我需要从应用程序向 Controller 发布一些数据,不知道我是否需要使用 url 参数或者我是否可以使用 Jsom也是这样吗?

最佳答案

在 ASP.NET Controller 中发送一个 json 对象,例如:{"姓名":"foo","年龄":5}

Controller 的代码可能是这样的:

[HttpPost]
public JsonResult MyAction(UserViewModel UserModel)
{
/* do something with your usermodel object */
UserModel.Name = "foo";
UserModel.Age = 5;

return Json(UserModel, JsonRequestBehavior.AllowGet);
}

编辑:在Android端,这里是发送请求和接收响应的方法:

public void GetDataFromServer() {

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("data_1", "data"));
nameValuePairs.add(new BasicNameValuePair("data_n", "data"));
try {
HttpPost httppost = new HttpPost("http://path_to_the_controller_on_server");
String result = RetrieveDataFromHttpRequest(httppost,nameValuePairs);
// parse json data
JSONObject jObjRoot = new JSONObject(result);
String objName = jObjRoot.getString("Name");
String objName = jObjRoot.getString("Age");
} catch (JSONException e) {
Log.e(TAG, "Error parsing data " + e.toString());
}
}

private String RetrieveDataFromHttpRequest(HttpPost httppost, ArrayList<NameValuePair> nameValuePairs ) {

StringBuilder sb = new StringBuilder();
try {
HttpClient httpclient = new DefaultHttpClient();
if (nameValuePairs != null)
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
// convert response to string
BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"));
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();
}

关于android - 从 Android 应用程序获取/发布数据到 MVC3 网站和 viseverse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9390070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com