httpclient HttpResponse response = client.execute(post);报空指针问题

来源:互联网 发布:淘宝零食批发店 编辑:程序博客网 时间:2024/06/11 14:54

HttpResponse response = client.execute(post);报空指针。

有点莫名奇妙的,client与post对话经过log与debug,都没有发现是null啊。,。。。


然后开始各种排错,常见的没加网络权限及网络访问没放在子线程中,都没有犯这样错啊。。。

最终注释掉post.setHeaders(headers);,又好了。。。(之前同一份代码在另一工程中,没问题啊。。。)

代码如下:

public static Object post(Context context,RequestVo vo,String IpAddress,String port){DefaultHttpClient client = new DefaultHttpClient();String baseUrl = "http://"+IpAddress+":"+port;Log.e("URL:", baseUrl.concat(context.getString(vo.requestUrl)));HttpPost post = new HttpPost(baseUrl.concat(context.getString(vo.requestUrl)));HttpParams params = new BasicHttpParams();       HttpConnectionParams.setConnectionTimeout(params, 8000);   //连接超时    HttpConnectionParams.setSoTimeout(params, 5000);   //响应超时post.setParams(params);//post.setHeaders(headers);      //这行代码注释掉,不能给post加头Object obj = null;try {//设置请求参数if(vo.requestDataMap!=null){HashMap<String,String> map = vo.requestDataMap;ArrayList<BasicNameValuePair> pairList = new ArrayList<BasicNameValuePair>();for(Map.Entry<String,String> entry:map.entrySet()){BasicNameValuePair pair = new BasicNameValuePair(entry.getKey(), entry.getValue());pairList.add(pair);}HttpEntity entity = new UrlEncodedFormEntity(pairList,Constant.CHARSET);post.setEntity(entity);}HttpResponse response = client.execute(post);//包含响应的状态和返回的结果==if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){String jsonStr = EntityUtils.toString(response.getEntity(),Constant.CHARSET);Log.e(NetUtil.class.getSimpleName(), jsonStr);try {obj = vo.jsonParser.parseJSON(jsonStr);//回调解析器,解析服务器返回的数据if(null == obj){JSONObject json = new JSONObject(jsonStr);String respCode = json.getString(Constant.RESP_CODE);String respDesc = json.getString(Constant.RESP_DESC);if(!TextUtils.isEmpty(respCode)){ErrorResponse errRes = new ErrorResponse();errRes.setRespCode(respCode);errRes.setRespDesc(respDesc);obj = errRes;}}} catch (JSONException e) {Log.e(NetUtil.class.getSimpleName(), e.getLocalizedMessage(),e);}return obj;}} catch (ClientProtocolException e) {Log.e(NetUtil.class.getSimpleName(), e.getLocalizedMessage(),e);} catch (IOException e) {Log.e(NetUtil.class.getSimpleName(), e.getLocalizedMessage(),e);}return null;}


0 0
原创粉丝点击