JSONP
发布时间:2020-12-16 19:36:56 所属栏目:百科 来源:网络整理
导读:HttpClientUtils.java package com.sf.util;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.HttpU
HttpClientUtils.java
package com.sf.util; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMethod; import com.alibaba.fastjson.JSONObject; /** * @ClassName: HttpClientUtils * <li>文件名称: HttpClientUtils.java</li> * <li>公 司: 北京赛福阔利特科技有限公司</li> * <li>版权所有: 版权所有(C)2015-2020</li> * <li>修改记录: ...</li> * <li>内容摘要: Http请求工具类</li> * <li>其他说明: ...</li> * @version v1.0 * @author ZhangJunfeng * @date 2016年6月21日 下午3:14:40 */ public class HttpClientUtils{ public static Object sendPostRequest(String urlStr){ return sendRequest(urlStr,RequestMethod.POST,null); } public static Object sendGetRequest(String urlStr){ return sendRequest(urlStr,RequestMethod.GET,null); } public static Object sendPostRequest(String urlStr,Map<String,Object> parameters){ return sendRequest(urlStr,parameters); } public static Object sendGetRequest(String urlStr,parameters); } /** * @Title: sendRequest * @Description: 发送请求,接收返回值 * @param urlStr 请求URL * @param method 请求方式 POST、GET * @param parameters 请求参数 * @return 设定文件 * @return String 返回类型 * @throws */ public static Object sendRequest(String urlStr,RequestMethod method,Object> parameters){ try { URL url = new URL(urlStr); HttpURLConnection con = (HttpURLConnection)url.openConnection(); if(method.equals(RequestMethod.POST)){ con.setDoOutput(true); } con.setDoInput(true); con.setRequestMethod(method.name()); con.setUseCaches(false); con.setInstanceFollowRedirects(true); con.setRequestProperty("accept","*/*"); con.setRequestProperty("Connection","Keep-Alive"); con.setRequestProperty("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); con.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/51.0.2704.79 Safari/537.36"); con.setConnectTimeout(30 * 1000); con.setReadTimeout(10*1000); con.connect(); if(method.equals(RequestMethod.POST)){ StringBuffer requestParameters = new StringBuffer(); if(parameters!=null && parameters.size()>0){ for (Map.Entry<String,Object> param : parameters.entrySet()) { requestParameters.append("&").append(param.getKey()).append("=").append(param.getValue()); } } String paramStr = requestParameters.toString(); if(!StringUtils.isEmpty(paramStr)){ PrintWriter out = new PrintWriter(con.getOutputStream()); out = new PrintWriter(con.getOutputStream()); paramStr = paramStr.substring(1); out.print(paramStr); out.flush(); out.close(); } } BufferedReader reader = null; if(con.getResponseCode()==HttpURLConnection.HTTP_OK || con.getResponseCode()==HttpURLConnection.HTTP_CREATED || con.getResponseCode()==HttpURLConnection.HTTP_ACCEPTED){ reader = new BufferedReader(new InputStreamReader(con.getInputStream(),"utf-8"),5*1024*1024); }else{ reader = new BufferedReader(new InputStreamReader(con.getErrorStream(),5*1024*1024); } String requestStr= ""; if(reader!=null){ String line; while ((line=reader.readLine())!=null) { requestStr+=line; } } reader.close(); con.disconnect(); if(requestStr.startsWith("[")){ return JSONObject.parSEObject(requestStr,List.class); }else if(requestStr.startsWith("{")){ return JSONObject.parSEObject(requestStr,Map.class); }else{ return requestStr; } } catch (Exception e) { System.out.println("发送 POST 请求出现异常!"+e); e.printStackTrace(); return null; } } public static void main(String[] args) { Map<String,Object> mapp = new HashMap<String,Object>(); mapp.put("deviceCode","00-50-56-C0-00-01"); mapp.put("account","admin"); mapp.put("pwd","admin"); Object result =sendPostRequest("http://127.0.0.1:8081/app/bflink/auth",mapp); System.out.println(result); // Map<String,Object>(); // mapp.put("workorders","{bfid:"asdfasdfasdasdf",cdate:1467951147057,description:"test",swpcode:"1060",weights:1}"); // Object resultStr = sendPostRequest("http://192.168.0.100:8081/app/bflink/bfwp/140gm9hASjd4fY6dEl%252F2KWWu%252ButGt9%252B2Y6Lte1VPkUnGxsxK%252B6MmElPKPkwfgBa6951yQWzLnWw%253D",mapp); // System.out.println(resultStr); } } springmvc ---jsonp接口 @RequestMapping(value = "/pj/testky") @ResponseBody public String text2(HttpServletRequest request,HttpServletResponse response,String contentType2,String callback){ String content = null; Map map = new HashMap(); Map<String,Object> parameters = new HashMap<String,Object>(); parameters.put("name","sarin"); Object o= HttpClientUtils.sendRequest("http://app.lituoxy.com:8091/api/tdprj_6373/trainpos",parameters); map.put("data",o); content=getJsonP(map,callback); return content; } public static String getJsonP(Map map,String callback) { ObjectMapper mapper = new ObjectMapper(); String content = null; try { content = mapper.writeValueAsString(map); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } if("".equals(callback)){ return content; } return callback+"("+content+")"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |