您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页Java发送HTTP的get,post请求(JSON)

Java发送HTTP的get,post请求(JSON)

来源:化拓教育网
Java发送HTTP的get,post请求(JSON)

1 import net.sf.json.JSONObject;

2 import org.apache.commons.httpclient.*;

3 import org.apache.commons.httpclient.methods.GetMethod;

4 import org.apache.commons.httpclient.params.HttpMethodParams; 5 import org.apache.http.HttpEntity; 6 import org.apache.http.HttpResponse;

7 import org.apache.http.client.methods.HttpPost; 8 import org.apache.http.entity.StringEntity;

9 import org.apache.http.impl.client.DefaultHttpClient; 10 import org.apache.http.util.EntityUtils; 11 import java.io.IOException; 12 13 /**

14 * Created by liqun.chen on 2017/5/15. 15 */

16 public class HttpUtil { 17 /**

18 * json 字符串 19 * @param url 20 * @param param 21 * @return 22 */

23 public static String getSerchPersion(String url,String param){ 24 /* 1 ⽣成 HttpClinet 对象并设置参数 */ 25 HttpClient httpClient = new HttpClient(); 26 // 设置 Http 连接超时为5秒

27 httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000); 28 /* 2 ⽣成 GetMethod 对象并设置参数 */

29 GetMethod getMethod = new GetMethod(url); 30 // 设置 get 请求超时为 5 秒

31 getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 5000); 32 // 设置请求重试处理,⽤的是默认的重试处理:请求三次

33 getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); 34 String response = \"\";

35 /* 3 执⾏ HTTP GET 请求 */ 36 try {

37 int statusCode = httpClient.executeMethod(getMethod); 38 /* 4 判断访问的状态码 */

39 if (statusCode != HttpStatus.SC_OK) {

40 System.err.println(\"请求出错: \"+ getMethod.getStatusLine()); 41 }

42 /* 5 处理 HTTP 响应内容 */

43 // HTTP响应头部信息,这⾥简单打印

44 Header[] headers = getMethod.getResponseHeaders(); 45 for (Header h : headers)

46 System.out.println(h.getName() + \"------------ \" + h.getValue()); 47 // 读取 HTTP 响应内容,这⾥简单打印⽹页内容

48 byte[] responseBody = getMethod.getResponseBody();// 读取为字节数组 49 response = new String(responseBody, param); 50 System.out.println(\"----------response:\" + response);

51 // 读取为 InputStream,在⽹页内容数据量⼤时候推荐使⽤

52 // InputStream response = getMethod.getResponseBodyAsStream(); 53 } catch (HttpException e) {

54 // 发⽣致命的异常,可能是协议不对或者返回的内容有问题 55 System.out.println(\"请检查输⼊的URL!\"); 56 e.printStackTrace(); 57 } catch (IOException e) { 58 // 发⽣⽹络异常

59 System.out.println(\"发⽣⽹络异常!\"); 60 e.printStackTrace(); 61 } finally {

62 /* 6 .释放连接 */

63 getMethod.releaseConnection(); }

65 return response; 66 } 67 /**

68 * post请求 69 * @param url 70 * @param json 71 * @return 72 */

73 public static JSONObject doPost(String url,JSONObject json){ 74 DefaultHttpClient client = new DefaultHttpClient(); 75 HttpPost post = new HttpPost(url); 76 JSONObject response = null; 77 try {

78 StringEntity s = new StringEntity(json.toString()); 79 s.setContentEncoding(\"UTF-8\");

80 s.setContentType(\"application/json\");//发送json数据需要设置contentType

81 post.setEntity(s);

82 HttpResponse res = client.execute(post);

83 if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK){ 84 HttpEntity entity = res.getEntity();

85 String result = EntityUtils.toString(res.getEntity());// 返回json格式: 86 response = JSONObject.fromObject(result); 87 }

88 } catch (Exception e) {

throw new RuntimeException(e); 90 }

91 return response; 92 }

1 //调⽤

2 public static void main(String arg[]) throws Exception { 3 String url = \"http://localhost:8080/\";

4 JSONObject params = new JSONObject(); 5 params.put(\"personName\

6 params.put(\"personCode\ 7 JSONObject param2 = new JSONObject(); 8 param2.put(\"pageNo\ 9 param2.put(\"pageSize\10 params.put(\"page\

11 String param = \"q=\"+params.toString();12 //get 请求

13 String ret = getSerchPersion(url, param.toString());14 System.out.println(ret);

15 // JSONObject jsonResponse=JSONObject.fromObject(param);16 // JSONObject json = (JSONObject)jsonResponse.get(\"page\");17 // System.out.println(json.get(\"pageSize\"));18

19 //post 请求

20 JSONObject jsonObject = doPost(url,params);21 System.out.println(jsonObject.toString());22 }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务