Java实现get或post请求
2017-12-11 21:21
288 查看
添加 jar 包支持
编写工具类
编写测试代码
测试结果
httpclient-4.3.1.jar httpcore-4.3.jar commons-logging-1.0.4.jar
编写工具类
import java.io.IOException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; public class HttpUtils { private static final String UTF_8 = "UTF-8"; public static String post(String url, Map<String, Object> params) throws Exception { String result = ""; HttpClient client = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(url); if (params != null && !params.isEmpty()) { List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>(); for (Map.Entry<String, Object> entry : params.entrySet()) { String name = entry.getKey(); String value = entry.getValue().toString(); BasicNameValuePair pair = new BasicNameValuePair(name, value); parameters.add(pair); } httpPost.setEntity(new UrlEncodedFormEntity(parameters, UTF_8)); } try { HttpResponse response = client.execute(httpPost); if (response.getStatusLine().getStatusCode() == 200) { result = EntityUtils.toString(response.getEntity(), UTF_8); } else { throw new Exception(response.toString()); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result; } public static String get(String url, Map<String, Object> params) throws Exception { String result = ""; HttpClient client = HttpClients.createDefault(); if (params != null && !params.isEmpty()) { StringBuffer buffer = new StringBuffer(); buffer.append("?"); for (Map.Entry<String, Object> entry : params.entrySet()) { String name = entry.getKey(); String value = URLEncoder.encode(entry.getValue().toString(), UTF_8); buffer.append(name).append("=").append(value).append("&"); } url += buffer.substring(0, buffer.length()-1).toString(); } HttpGet get = new HttpGet(url); get.setHeader("charset", UTF_8); try { HttpResponse response = client.execute(get); if (response.getStatusLine().getStatusCode() == 200) { result = EntityUtils.toString(response.getEntity(), UTF_8); } else { throw new Exception(response.toString()); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result; } }
编写测试代码
import java.util.HashMap; import java.util.Map; public class HttpTest { public static void main(String[] args) { String url = "http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo"; try { Map<String, Object> params = new HashMap<String, Object>(); params.put("mobileCode", "1888888"); params.put("userID", ""); String result = HttpUtils.get(url, params); System.out.println("GET请求:\n" + result); result = HttpUtils.post(url, params); System.out.println("POST请求:\n" + result); } catch (Exception e) { e.printStackTrace(); } } }
测试结果
GET请求: <?xml version="1.0" encoding="utf-8"?> <string xmlns="http://WebXml.com.cn/">1888888:北京 北京 北京移动全球通卡</string> POST请求: <?xml version="1.0" encoding="utf-8"?> <string xmlns="http://WebXml.com.cn/">1888888:北京 北京 北京移动全球通卡</string>
相关文章推荐
- java实现http的get和post请求
- Java 模拟 HTTP Get Post 请求实现论坛自动回帖
- java http get post请求 https请求实现
- 简单记下httpclientjava实现get,post请求
- java发送http的get、post请求实现代码
- Java网络请求(get/post)工具类实现的两种方式
- Java如何实现URL带请求参数(get/post)及得到get和post请求url和参数列表的方法
- java HTTP get post请求,获取二进制文件实现
- java 实现向指定URL发送get 和 post 请求
- Java 代码实现Http 的GET和POST 请求
- 用Java实现发送http的get和post请求
- Java实现http(post、get)请求
- java实现http的Post、Get、代理访问请求
- java 实现post get 请求url
- JAVA实现http/https的Post、Get、代理访问请求
- 多种方式实现(jdk原生api实现/httpClient的实现) java 发送http(post/get)请求并携带参数(讲解超详细)
- [Java学习] java实现http的Post、Get、代理访问请求
- Java模拟HTTP Get Post请求 轻松实现校园BBS自动回帖
- Java 模拟HTTP Get Post请求 校园BBS自动回帖实现
- java实现:http协议get和post方法的url参数请求响应及交互