发送json字符串给服务器

来源:互联网 发布:网络黄金egd的最新消息 编辑:程序博客网 时间:2024/04/30 14:02

1:httpCilent


                        JSONObject params=new JSONObject();
params.put("name","天空蓝蓝的");
params.put("age","100");
 

/**
* 获取指定uri地址的响应实体对象

* @param uri
* @param params
* @param method post
* @return
* @throws IOException
*/
public static HttpEntity uploadEntity(String uri,JSONObject params) throws ConnectTimeoutException,IOException {
LogUtils.i("info", "uri:" + uri);
HttpEntity entity = null;
// 创建客户端
HttpClient client = new DefaultHttpClient();
// 设置连接超时时间为50秒
client.getParams().setParameter(
CoreConnectionPNames.CONNECTION_TIMEOUT, 50000);

// 创建请求
HttpPost request = null;
// post请求
request = new HttpPost(uri);
StringEntity se = new StringEntity(params.toString(),"utf-8");
se.setContentType("application/json");
//se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
// 如果需要上传数据,则设置请求实体
request.setEntity(se);

// 发送请求,获取响应
HttpResponse  response = client.execute(request);
// 判断响应码,如果为200,则获取实体对象
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
entity = response.getEntity();
}
return entity;
}


2:使用AsyncHttpCilent

      @Override
public void reportInspectionDetail(String inspectionId, String inspectionStatus,
String inspectionDescription,final Integer... what) {
final String url=GloableCantests.Base_Url+"reportInspectionDetail";

//注意点1
final JSONObject params=new JSONObject();
try {
params.put("inspectionId",inspectionId+"");
params.put("inspectionStatus",inspectionStatus+"");
params.put("inspectionDescription",inspectionDescription);

} catch (Exception e) {
e.printStackTrace();
}

//解析 JSON 作为一个字符串:
ByteArrayEntity entity = null;
try {

                 //注意点2
entity = new ByteArrayEntity(params.toString().getBytes("UTF-8"));

} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

//注意点3
CommonUtils.client.post(context,url,entity,"application/json", new AsyncHttpResponseHandler(){
@Override
public void onFailure(Throwable error, String content) {
//解析json
requestListener.onRequetFailure(error,content,what);
}
@Override
public void onSuccess(int statusCode, String content) {
//解析json
try {
Map<String,Object> map=JsonUtils.getReSponseDataJsonStr(content);
String responseJsonStr = (String) map.get("responseJsonStr");

// TODO 解析responseJsonStr 添加以key=data  value=集合形式或Object,add到map中

requestListener.onRequetSuccess(map,what);
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onStart() {
super.onStart();
requestListener.onRequetStart();
}
@Override
public void onFinish() {
super.onFinish();
requestListener.onRequetFinish();
}
});


}


0 0
原创粉丝点击