服务器之间传输数据
2017-08-23 10:37
169 查看
package com.pms.sys.util; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONObject; /** * max请求 * @author NetSnake * */ public class NetUtils { //UTF-8 GBK public static final String DEF_CHATSET = "UTF-8"; public static final int DEF_CONN_TIMEOUT = 86400000; public static final int DEF_READ_TIMEOUT = 86400000; //public static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36"; //配置您申请的KEY public static final String APPKEY ="*************************"; /* * 需求计划测试 */ @org.junit.Test public void getPlanTest() throws UnsupportedEncodingException { String result =null; String url ="url(地址)?str=";//请求接口地址 Map<String, Object> params = new HashMap<>();//请求参数 //params.put("key",APPKEY);//APPKEY值 List<Map<String, Object>> list = new ArrayList<>(); Map<String, Object> params0 = new HashMap<>();//请求参数 // params0.put("userid","1458"); params0.put("personid","CHENRENJUN"); params0.put("tableName","pr"); Map<String, Object> params1 = new HashMap<>(); params1.put("description",URLEncoder.encode("测试审核流程","UTF-8")); //URLEncoder.encode("测试审核流程","UTF-8") params0.put("tableFields",params1); list.add(params0); params.put("tableLists",list); url = url+JSONObject.fromObject(params); System.out.println(url); try { System.out.println(params+"发送请求前"); result =net(url, null, "POST"); System.out.println(result+"请求返回数据"); JSONObject object = JSONObject.fromObject(result); System.out.println(object); /*if(object.getInt("error_code")==0){ System.out.println(object.get("result")); }else{ System.out.println(object.get("error_code")+":"+object.get("reason")); }*/ if(object.getString("result") != null){ System.out.println(object.get("result")); object = JSONObject.fromObject(object.get("result")); System.out.println(object.get("prnum")+"==="+object.get("status")); } } catch (Exception e) { e.printStackTrace(); } } /** * * @param strUrl 请求地址 * @param params 请求参数 * @param method 请求方法 * @return 网络请求字符串 * @throws Exception */ public static String net(String strUrl, Map<String, Object> params,String method) throws Exception { HttpURLConnection conn = null; BufferedReader reader = null; String rs = null; try { StringBuffer sb = new StringBuffer(); if(method==null || method.equals("GET")){ strUrl = strUrl+"?"+urlencode(params); } URL url = new URL(strUrl); conn = (HttpURLConnection) url.openConnection(); if(method==null || method.equals("GET")){ conn.setRequestMethod("GET"); }else{ conn.setRequestMethod("POST"); conn.setDoOutput(true); } //conn.setRequestProperty("User-agent", userAgent); conn.setUseCaches(false); conn.setConnectTimeout(DEF_CONN_TIMEOUT); conn.setReadTimeout(DEF_READ_TIMEOUT); conn.setInstanceFollowRedirects(false); conn.connect(); if (params!= null && method.equals("POST")) { try { DataOutputStream out = new DataOutputStream(conn.getOutputStream()); out.writeBytes(urlencode(params)); } catch (Exception e) { e.printStackTrace(); } } InputStream is = conn.getInputStream(); reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET)); String strRead = null; while ((strRead = reader.readLine()) != null) { sb.append(strRead); } rs = sb.toString(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { reader.close(); } if (conn != null) { conn.disconnect(); } } return rs; } //将map型转为请求参数型 public static String urlencode(Map<String,Object>data) { StringBuilder sb = new StringBuilder(); for (Map.Entry i : data.entrySet()) { try { sb.append(i.getKey()).append(":").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } return sb.toString(); } }
相关文章推荐
- 两台服务器之间无密码传输数据和操作的方法
- 无需输密码实现两台ubuntu服务器之间的数据传输
- Android:客户端和服务器之间传输数据加密
- 服务器之间传输数据
- 服务器之间传输数据限制带宽
- 三层中如何在服务器与客户端之间传输自定义的'Record'类型数据的例子
- Android:客户端和服务器之间传输数据加密
- 客户端C和服务器S之间建立一个TCP连接,该连接总是以1KB的最大段长发送TCP段,客户端C有足够的数据要发送。当拥塞窗口为16KB的时候发生超时,如果接下来的4个RTT往返时间内的TCP段的传输是成
- WCF 通过net tcp 协议 ,在服务端服务器和客户端服务器之间传输数据,注意配置事项
- 数据库增量同步(二台SQL Server服务器的数据库之间增量传输数据)(jaime原创)
- 解如何利用 XML 和 JavaScript Object Notation 在 Ajax 客户端和 Java 服务器之间传输数据。
- linux下两台服务器之间传输数据命令
- 解如何利用 XML 和 JavaScript Object Notation 在 Ajax 客户端和 Java 服务器之间传输数据(代码)(Oracle)。
- 关于android和服务器之间的json数据传输总结
- linux scp-两台服务器之间传输数据的命令
- 浏览器和服务器之间传输数据
- 【数据传输 1】服务器—>客户端之间的数据类型转换
- scp采用无密码在两台linux服务器之间传输数据
- linux scp-两台服务器之间传输数据的命令
- 【数据传输 1】服务器—>客户端之间的数据类型转换