100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 使用httpClient发送get\post请求

使用httpClient发送get\post请求

时间:2023-02-24 21:19:09

相关推荐

使用httpClient发送get\post请求

独角兽企业重金招聘Python工程师标准>>>

maven依赖

1 <dependency>2 <groupId>org.apache.httpcomponents</groupId>3 <artifactId>httpclient</artifactId>4 <version>4.5.2</version>5</dependency>

GET请求:

1、参数直接拼接到URL后面,即?a=1&b=2的形式

1 /**2* get请求,参数拼接在地址上3* @param url 请求地址加参数4* @return 响应5*/6public String get(String url)7{8 String result = null;9 CloseableHttpClient httpClient = HttpClients.createDefault();10 HttpGet get = new HttpGet(url);11 CloseableHttpResponse response = null;12 try {13 response = httpClient.execute(get);14 if(response != null && response.getStatusLine().getStatusCode() == 200)15 {16 HttpEntity entity = response.getEntity();17 result = entityToString(entity);18 }19 return result;20 } catch (IOException e) {21 e.printStackTrace();22 }finally {23 try {24 httpClient.close();25 if(response != null)26 {27 response.close();28 }29 } catch (IOException e) {30 e.printStackTrace();31 }32 }33 return null;34}

2、参数放置到一个map中

1 /**2* get请求,参数放在map里3* @param url 请求地址4* @param map 参数map5* @return 响应6*/7public String getMap(String url,Map<String,String> map)8{9 String result = null;10 CloseableHttpClient httpClient = HttpClients.createDefault();11 List<NameValuePair> pairs = new ArrayList<NameValuePair>();12 for(Map.Entry<String,String> entry : map.entrySet())13 {14 pairs.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));15 }16 CloseableHttpResponse response = null;17 try {18 URIBuilder builder = new URIBuilder(url);19 builder.setParameters(pairs);20 HttpGet get = new HttpGet(builder.build());21 response = httpClient.execute(get);22 if(response != null && response.getStatusLine().getStatusCode() == 200)23 {24 HttpEntity entity = response.getEntity();25 result = entityToString(entity);26 }27 return result;28 } catch (URISyntaxException e) {29 e.printStackTrace();30 } catch (ClientProtocolException e) {31 e.printStackTrace();32 } catch (IOException e) {33 e.printStackTrace();34 }finally {35 try {36 httpClient.close();37 if(response != null)38 {39 response.close();40 }41 } catch (IOException e) {42 e.printStackTrace();43 }44 }45 46 return null;47}

POST请求:

1、参数放到map中

1 /**2* 发送post请求,参数用map接收3* @param url 地址4* @param map 参数5* @return 返回值6*/7public String postMap(String url,Map<String,String> map) {8 String result = null;9 CloseableHttpClient httpClient = HttpClients.createDefault();10 HttpPost post = new HttpPost(url);11 List<NameValuePair> pairs = new ArrayList<NameValuePair>();12 for(Map.Entry<String,String> entry : map.entrySet())13 {14 pairs.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));15 }16 CloseableHttpResponse response = null;17 try {18 post.setEntity(new UrlEncodedFormEntity(pairs,"UTF-8"));19 response = httpClient.execute(post);20 if(response != null && response.getStatusLine().getStatusCode() == 200)21 {22 HttpEntity entity = response.getEntity();23 result = entityToString(entity);24 }25 return result;26 } catch (UnsupportedEncodingException e) {27 e.printStackTrace();28 } catch (ClientProtocolException e) {29 e.printStackTrace();30 } catch (IOException e) {31 e.printStackTrace();32 }finally {33 try {34 httpClient.close();35 if(response != null)36 {37 response.close();38 }39 } catch (IOException e) {40 e.printStackTrace();41 }42 43 }44 return null;45}

2、参数是json字符串

1 /**2* post请求,参数为json字符串3* @param url 请求地址4* @param jsonString json字符串5* @return 响应6*/7public String postJson(String url,String jsonString)8{9 String result = null;10 CloseableHttpClient httpClient = HttpClients.createDefault();11 HttpPost post = new HttpPost(url);12 CloseableHttpResponse response = null;13 try {14 post.setEntity(new ByteArrayEntity(jsonString.getBytes("UTF-8")));15 response = httpClient.execute(post);16 if(response != null && response.getStatusLine().getStatusCode() == 200)17 {18 HttpEntity entity = response.getEntity();19 result = entityToString(entity);20 }21 return result;22 } catch (UnsupportedEncodingException e) {23 e.printStackTrace();24 } catch (ClientProtocolException e) {25 e.printStackTrace();26 } catch (IOException e) {27 e.printStackTrace();28 }finally {29 try {30 httpClient.close();31 if(response != null)32 {33 response.close();34 }35 } catch (IOException e) {36 e.printStackTrace();37 }38 }39 return null;40}

entityToString方法:

1 private String entityToString(HttpEntity entity) throws IOException {2 String result = null;3 if(entity != null)4 {5 long lenth = entity.getContentLength();6 if(lenth != -1 && lenth < 2048)7 {8 result = EntityUtils.toString(entity,"UTF-8");9 }else {10 InputStreamReader reader1 = new InputStreamReader(entity.getContent(), "UTF-8");11 CharArrayBuffer buffer = new CharArrayBuffer(2048);12 char[] tmp = new char[1024];13 int l;14 while((l = reader1.read(tmp)) != -1) {15 buffer.append(tmp, 0, l);16 }17 result = buffer.toString();18 }19 }20 return result;21}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。