Java发送HTTP的get,post请求(JSON)
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
java http post请求传json数据格式,试了很多的方式,用了下面这个是可以
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(); 64 } 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) { 89 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", "name"); 6 params.put("personCode", "230882xxxxxx2116"); 7 JSONObject param2 = new JSONObject(); 8 param2.put("pageNo", 1); 9 param2.put("pageSize", 20); 10 params.put("page", param2); 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 }
转载来自:http://www.cnblogs.com/Mr-Chen-blog/articles/6951688.html
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
4 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)