android http pos 请求和gson解析处理head头信息

本文详细介绍了使用HTTP POST方法进行延时操作,并通过GSON库进行JSON解析的过程。同时,展示了如何设置请求头信息、处理响应头和响应体,以及在不同异常情况下的错误处理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//这是我从基类里取出来的代码,包括HTTP  POST 延时操作,GSON解析,设置头信息,取出头信息,


// 公共post类

public String HttpClientPost(String path, String msgBody, int msgId,
Context ctx) throws Exception {

HttpClient httpClient = new DefaultHttpClient();

org.apache.http.params.HttpParams parms = httpClient.getParams();
// 设置超时
/*HttpConnectionParams.setConnectionTimeout(parms, 3500);// 设置网络超时
HttpConnectionParams.setSoTimeout(parms, 3500);// 设置网络超时
*/
 httpClient.getParams().setParameter(CoreConnectionPNames.
 CONNECTION_TIMEOUT, 5500);
 
 httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
 5500 );
 


HttpPost request = new HttpPost(path);


Log.e("e", "path=" + path + ", msgId=" + msgId + ", msgBody=" + msgBody
+ ", mDataVersion=" + HttpTools.getDataVersion()
+ ", mLoginToken=" + HttpTools.getLoginToken());


// 设置Http Body
List<NameValuePair> parameters = new ArrayList<NameValuePair>();
NameValuePair nvp = new BasicNameValuePair("MsgId", msgId + "");
NameValuePair nvp1 = new BasicNameValuePair("MsgBody", msgBody);
parameters.add(nvp);
parameters.add(nvp1);


UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters,
"UTF-8");
request.setEntity(entity);


HttpTools.setContext(ctx);


// 设置Http hearder
request.setHeader(InterfaceCode.HDR_DATA_VERSION_STRING,
HttpTools.getDataVersion());
request.setHeader(InterfaceCode.HDR_LOGIN_TOKEN_STRING,
HttpTools.getLoginToken());


// 发Http Request
try {


HttpResponse response = httpClient.execute(request);


int statusCode = response.getStatusLine().getStatusCode();


Log.e("e",
"statusCode = " + statusCode + ", Entity="
+ response.getEntity());

if (statusCode == HttpStatus.SC_OK) {

// 处理Http Header
saveHeaderInfo(response, ctx);

// 处理Http Body 
Log.i("i", responseJson + "" + "---");
if (responseJson != null) {
responseJson = responseJson.replaceAll("&quot;", "\"");
}

return responseJson;
} else {
Log.e("e", "error: statusCode = " + statusCode);
return null;
}
} /*catch (ClientProtocolException e) {
// TODO: handle exception
e.printStackTrace();
Log.e("e", "error: ClientProtocolException = ");
return ClientProtocolException;


} */catch (ConnectTimeoutException e) {
// TODO: handle exception
e.printStackTrace();
Log.e("e", "error: ConnectTimeoutException = ");
return ConnectTimeoutException;
}/*
* catch(SocketTimeoutException e) { // TODO: handle exception
* e.printStackTrace(); Log.e("e", "error:SocketTimeoutException= ");
* return SocketTimeoutException; }
*/catch (UnknownHostException e) {
// TODO: handle exception
e.printStackTrace();

/*
* String json = responseJson.toString(); Log.i("i", json); json =
* URLDecoder.decode(json, "UTF-8"); Log.i("i", json + "json"); Gson
* gson = new Gson(); // google提供的一个类 方便于获取类型Class

* User user = gson.fromJson(json, User.class); Log.i("i",
* "username" + user.getUserName()); Log.i("i", "userpwd" +
* user.getUserPassword());
*/

Log.e("e", "error:UnknownHostException = ");

return UnknownHostException;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值