java servlet或者struts通过HTTP方式传输数据到另外一系统
2013-04-23 15:11
459 查看
其实说的HTTP方式就是一个类Servlet而已.
传输代码可以在Servlet里面也可以用Struts2来做
代码为:
POST方式
xxxx为参数:logistics=1111&data=2222&warehouse=3333不要在地址后面带?问号
url为地址:http://10.0.7.115:8082/2dcode/ToLscmServlet
传输代码可以在Servlet里面也可以用Struts2来做
代码为:
public String toGxxxServlet() { try { //地址后面加上要传的参数. URL url = new URL("http://10.0.7.115:8082/2dcode/ToLscmServlet?logistics=1111&data=2222&warehouse=3333"); // 设置网络地址 HttpURLConnection httpUrlConnection = getHttpURLConnection(url);// 获取连接 writeInfoToGxxx(httpUrlConnection); // 传输xml到.... InputStream inStrm = httpUrlConnection.getInputStream(); // <===注意,实际发送请求的代码段就在这里 String resultxml = resultInfoByGxxx(httpUrlConnection,inStrm);// 接收返回的数据 System.out.println(resultxml); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return SUCCESS; } /** * 设置HttpURLConnection必要参数 */ private HttpURLConnection getHttpURLConnection(URL url) throws IOException { HttpURLConnection httpUrlConnection = (HttpURLConnection) url .openConnection(); // 设置超时 httpUrlConnection.setConnectTimeout(60000); httpUrlConnection.setReadTimeout(60000); // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在 // http正文内,因此需要设为true, 默认情况下是false; httpUrlConnection.setDoOutput(true); // 设置是否从httpUrlConnection读入,默认情况下是true; httpUrlConnection.setDoInput(true); httpUrlConnection.setInstanceFollowRedirects(true); // 设定请求的方法为"POST",默认是GET httpUrlConnection.setRequestMethod("POST"); // 设定传送的内容类型是可序列化的java对象 // (如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException) httpUrlConnection.addRequestProperty("Content-type", "application/x-java-serialized-object");//注意这个参数.有很多种.如果对方没有接到数据,多注意这个参数配置,我也给这个参数懵了好几天 // Post 请求不能使用缓存 httpUrlConnection.setUseCaches(false); httpUrlConnection.connect(); return httpUrlConnection; } /** * 将数据传输到对方 * @param httpUrlConnection * @throws IOException */ private void writeInfoToGxxx(HttpURLConnection httpUrlConnection) throws IOException { // 调用HttpURLConnection连接对象的getInputStream()函数, // 将内存缓冲区中封装好的完整的HTTP请求电文发送到服务端。 OutputStream outStrm = httpUrlConnection.getOutputStream(); //刷新一下就过去了,必须要. outStrm.flush(); outStrm.close();// 关闭 } /** * 返回内容写入 * @param httpUrlConnection * @param inStrm * @return * @throws IOException */ private String resultInfoByGxxx(HttpURLConnection httpUrlConnection,InputStream inStrm) throws IOException { byte b[] = new byte[1024]; int len = 0; int temp = 0; // 所有读取的内容都使用temp接收 while ((temp = inStrm.read()) != -1) { // 当没有读取完时,继续读取 b[len] = (byte) temp; len++; } inStrm.close();// 关闭 return new String(b, 0, len); }
POST方式
HttpURLConnection httpUrlConnection = getHttpURLConnection(url);// 获取连接 DataOutputStream outStrm = new DataOutputStream(httpUrlConnection.getOutputStream()); outStrm.writeBytes(xxxx);参数 outStrm.flush(); outStrm.close();// 关闭
HttpURLConnection httpUrlConnection = (HttpURLConnection) url .openConnection(); // 设置超时 httpUrlConnection.setConnectTimeout(60000); httpUrlConnection.setReadTimeout(60000); // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在 // http正文内,因此需要设为true, 默认情况下是false; httpUrlConnection.setDoOutput(true); // 设置是否从httpUrlConnection读入,默认情况下是true; httpUrlConnection.setDoInput(true); httpUrlConnection.setInstanceFollowRedirects(true); // 设定请求的方法为"POST",默认是GET httpUrlConnection.setRequestMethod("POST"); // 设定传送的内容类型是可序列化的java对象 // (如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException) httpUrlConnection.addRequestProperty("Content-Type", "application/x-www-form-urlencoded");//注意这里的参数 // Post 请求不能使用缓存 httpUrlConnection.setUseCaches(false); httpUrlConnection.connect(); return httpUrlConnection;
xxxx为参数:logistics=1111&data=2222&warehouse=3333不要在地址后面带?问号
url为地址:http://10.0.7.115:8082/2dcode/ToLscmServlet
相关文章推荐
- java servlet或者struts通过HTTP方式传输数据到另外一系统
- 应用系统之间数据传输的几种方式
- 应用系统之间数据传输的几种方式
- HttpClient数据传输的编码方式
- 应用系统之间数据传输的几种方式
- iOS 通过httpPOST方法传输文本数据
- 驱动程序学习(三)示例2 :设备驱动程序与应用程序之间数据传输的另外一种方式
- Java HttpClient两种数据传输方式
- 应用系统之间数据传输的几种方式
- 利用HttpWebRequest通过POST Json数据在.net后台实现不同平台间的数据传输
- 客户端通过Http传输数据到服务端
- linux系统间通过cron和ssh实现数据的自动定时传输
- android中的http通信---(3)通过get、post方式传数据给服务器
- 浏览器在一次 HTTP 请求中,需要传输一个 4097 字节的文本数据给服务端,可以采用那些方式?
- WebAPI通过multipart/form-data方式同时上传文件以及数据(含HttpClient上传Demo)
- Java 通过调用系统程序打开文件或者目录的方式
- linux系统间通过cron和ssh实现数据的自动定时传输
- 应用系统之间数据传输的几种方式
- Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据
- Java 通过httpClient Post方式提交xml,并从服务端返回数据