您的位置:首页 > Web前端 > JavaScript

JSONP

2016-07-27 08:45 309 查看
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, RequestMethod.POST, parameters);
}

public static Object sendGetRequest(String urlStr,Map<String, Object> parameters){
return sendRequest(urlStr, RequestMethod.GET, 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,Map<String, 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(),"utf-8"),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 = new HashMap<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",RequestMethod.GET,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+")";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsonp