server接口如:
http://127.0.0.1?param={
"Params" : {
"ProjectID" : "00000010"
},
"Version" : "1.0",
"SessionID" : "111111",
"Method" : "GetProject",
"AppID" : "",
"Key" : "
}
拼凑url的方法如:
public static String getProject(String projectID, String version, String sessionID, String method, String appID, String key) throws JSONException{
JSONObject jo1 = new JSONObject();
jo1.put("ProjectID", projectID);
JSONObject jo = new JSONObject();
jo.put("Params",jo1);
jo.put("Version", version);
jo.put("SessionID", sessionID);
jo.put("Method", method);
jo.put("AppID", appID);
jo.put("Key", key);
String str = jo.toString().replace("\"", "%22").replace("{", "%7b").replace("}", "%7d");
return "http://127.0.0.1?param="+str;
}
tips:在http post或get请求时,传入的参数不能有"或{或},所以需要转码。
从server发送请求得到数据:
public JSONObject getJSONObjFromUrl(String url) throws Exception {
HttpParams httpParams = new BasicHttpParams();
setHttpParams(httpParams);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);
HttpGet httpGet = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(httpGet);
int res = httpResponse.getStatusLine().getStatusCode();
if (200 == res) {
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
jsonStr = sb.toString();
jObj = new JSONObject(jsonStr);
} else {
throw new Exception();
}
return jObj;
}