【发布时间】:2014-02-21 14:22:32
【问题描述】:
我一直在开发一个 android 应用程序项目,该项目使用 HTTP Get 通过使用 Java 中的 JSON 的 PHP 文件从 MySQL 发送和接收数据。
我最近在使用 HTTP 传输和通过 URL 传递参数的最佳实践背后遇到了一些理论上的问题。
第一个问题:
我应该如何将我的数据传递给我的 PHP Web 服务?
目前我只是使用键值对通过单个参数传递数据,如下所示:
myurl.com/retrieveinfo.php?user_id=453&password=sha1-hash-value
我应该移动这种类型的请求以将 JSON 对象附加到 URL 上吗?像这样:
myurl.com/retrieveinfo.php?{\"users\":{\"username\":\"User1Name\" ,\"user_id\":453 , \"password\":\"sha1-hash-value\"}}
第二个问题:
*我应该如何处理来自服务器的 JSON 响应?我是否需要将这项工作推给处理程序并确保 UI 线程不是做这项工作的人? *
目前我只是为每个对象类型使用单独的方法解析 JSON,例如
用户类
private void parseUserInfo(JSONObject response){
// Do all my Parsing for a User Object
try{
JSONArray users = response.getJSONArray("users");
JSONObject user = users.getJSONObject(0);
// Get the User info etc...
}catch(JSONException ex){
ex.printStackTrace();
}
}
Notes.Class
private void parseNotes(JSONObject response){
// Do all my Parsing for a Note Object
try{
JSONArray notes = response.getJSONArray("notes");
for (int index = 0; index < notes.length() ; index++)
{
JSONObject note = notes.getJSONObject(index);
// Get all the note info etc...
}
}catch(JSONException ex){
ex.printStackTrace();
}
}
第三个问题:
我希望我的 PHP 服务器文件仅适用于我的应用程序。那么,在我的服务器上保护我的 PHP 文件的最佳方法是什么,以便对我的文件的请求在浏览器中运行时不会通过?
我应该发送一些只有我的应用程序知道的临时密钥吗?
谢谢
【问题讨论】: