您的位置:首页 > 理论基础 > 计算机网络

安卓通过httpget传入json参数,请求数据

2014-04-01 13:47 381 查看
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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: