android Http 网络超时,怎么设置

本文介绍了一个具体的异步调用WebService的方法示例。该示例展示了如何使用HttpClient发送HttpPost请求,并通过Handler处理返回结果。同时,文章还讨论了异常处理及返回值的解析。

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

给你一段代码看看,这是我在一个类里的方法,在异步中调用这个方法,在handler里取得返回值,进行处理。
public static String addCustDetails(TCUSTINFODETAILS1 custdetail){
  HttpPost httpPost=new HttpPost(URLD);//webservice地址
  List<NameValuePair> params=new ArrayList<NameValuePair>();
  params.add(new BasicNameValuePair("MGUID",custdetail.getMGUID()));
  params.add(new BasicNameValuePair("FollowDate",custdetail.getFollowDate()));
  params.add(new BasicNameValuePair("FollowTitle",custdetail.getFollowTitle()));
  params.add(new BasicNameValuePair("Contacter",custdetail.getContacter()));
  params.add(new BasicNameValuePair("Follower",custdetail.getFollower()));
  params.add(new BasicNameValuePair("QiatanType",custdetail.getQiatanType()));
  params.add(new BasicNameValuePair("Qingkuang",custdetail.getQingkuang()));
  params.add(new BasicNameValuePair("biztype",custdetail.getBiztype()));
  params.add(new BasicNameValuePair("itemclass",custdetail.getItemclass()));
  params.add(new BasicNameValuePair("ItemBarnd",custdetail.getItembrand()));
  params.add(new BasicNameValuePair("Mobile",custdetail.getMobile()));
  params.add(new BasicNameValuePair("Mail",custdetail.getMail()));
  params.add(new BasicNameValuePair("SIMID",custdetail.getSIMID()));
  HttpResponse httpResponse;
  String code = "";
  String code2="";
  int code1=0;
  
  try {
   httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
   HttpClient client=new DefaultHttpClient();
   HttpParams parms=client.getParams();
   HttpConnectionParams.setConnectionTimeout(parms, 6000);//设置网络超时
   HttpConnectionParams.setSoTimeout(parms, 45000);//设置网络超时

   httpResponse=client.execute(httpPost);
   code1=httpResponse.getStatusLine().getStatusCode();
   String strResult=EntityUtils.toString(httpResponse.getEntity());
      String JsonStr="{CUSTINFOD:["+strResult+"]}";
      JSONObject jsonobject=new JSONObject(JsonStr.toString());
      JSONArray arrayJson=jsonobject.getJSONArray("CUSTINFOD");
   if(code1==201){
    code2="";//返回成功
      }else{
    for(int i=0;i<arrayJson.length();i++){
        JSONObject Json=arrayJson.optJSONObject(i);
        code2=Json.getString("Message");//返回错误信息
       }
   }
  } catch (UnsupportedEncodingException e) {
   // TODO Auto-generated catch block
   code1=200000;
   code2=e.getMessage();//返回其他错误信息
  } catch (ClientProtocolException e) {
   // TODO Auto-generated catch block
   code1=100000;
   code2="网络连接有问题,请检查";//这个也是捕获超时的,但最终返回错误的是下面一句
  } catch (IOException e) {
   // TODO Auto-generated catch block
   code1=100000;
   code2="网络连接有问题,请检查";//这里捕获超时
  } catch (JSONException e) {
   // TODO Auto-generated catch block
   code1=200001;
   code2=e.getMessage();//返回JSON错误
  }
  
  
  code=code1+":"+code2;
  return code;
  
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值