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; }