自从我为 Android 编程以来已经有一段时间了,我丢失了所有以前的工作,其中包含我遇到问题的代码。我正在为 Android 和 iPhone 开发一个应用程序,它连接到同一台服务器以下载数据。在 iPhone 版本中一切都很好,但在 Android 上,当我使用包含我想在服务器上运行的方法名称的发布数据访问服务器时,似乎数据没有添加到请求中。
为什么 POST 不适用于 Android 的此请求,但适用于 iPhone 版本的应用程序?
这是我正在使用的代码:
public static void makeRequest() throws Exception {
Thread t = new Thread() {
public void run() {
Looper.prepare(); //For Preparing Message Pool for the child Thread
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000);
HttpResponse response;
HttpEntity entity;
JSONObject json = new JSONObject();
try {
HttpPost post = new HttpPost("http://divisi.co.uk/rest/requesthandler.php");
json.put("method", "getEventListData");
StringEntity se = new StringEntity(json.toString());
se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
post.setEntity(se);
response = client.execute(post);
entity = response.getEntity();
String retSrc = EntityUtils.toString(entity);
JSONObject result = new JSONObject(retSrc); //Convert String to JSON Object
if(result.getString("SC") == "200"){
JSONArray data = result.getJSONArray("data");
}
else{
}
} catch(Exception e) {
e.printStackTrace();
}
Looper.loop(); //Loop in the message queue
}
};
t.start();
}
我从服务器得到的响应是:
{"data":{"scalar":""},"SC":405,"timestamp":1363788265}
意味着找不到方法名称,即未在我对服务器的请求中发布。