/** * this is a method for execute a get or post;if you want to execute a get * method ,make the param list to be null;default timeout period is 6000ms. * if you want to add some yourself headers,the third param is for u;else * make it be null; * * @author Mercy */ public static HttpResponse getResponse(String url, List<NameValuePair> list, Header[] headers) { RequestConfig config = RequestConfig.custom().setConnectTimeout(6000).setSocketTimeout(6000) .setCookieSpec(CookieSpecs.STANDARD_STRICT).build(); // use the method setCookieSpec to make the header which named // set-cookie effect HttpResponse response = null; HttpUriRequest request = null; if (list == null) { HttpGet get = new HttpGet(url); get.setConfig(config); request = get; } else { HttpPost post = new HttpPost(url); post.setConfig(config); HttpEntity entity = null; try { entity = new UrlEncodedFormEntity(list, "utf-8"); post.setEntity(entity);// 此处有个低级错误,谨记! request = post; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } request.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36"); request.setHeader("Connection", "keep-alive"); request.setHeaders(headers); try { System.out.println("ready to link " + url); response = client.execute(request); System.out.println("status code is " + response.getStatusLine().getStatusCode()); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return response; }
httpclient4.5提交请求通用方法
由于研究需要,需要频繁的访问,为了避免重复代码,写了个get和post通用方法。
猜你喜欢
转载自mercymessi.iteye.com/blog/2248645
今日推荐
周排行