在企业开发中,很多时候需要用到两个服务端的对接,在java类中进行连接并传递参数,其中的HttpURLConnection是一种轻量化,并且简单的方法!

package httptest;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;

import net.sf.json.JSONObject;

/*

*      请求类,分为post和get两个方法

*/

public class HttpClientHandle {

private static int HttpTimeOut = 20000; // 连接超时时间
private static String Method_Get = "GET"; // get方式
private static String Method_Post = "POST"; // post方式


public static void main(String[] args) {

Map<String, Object> fieldMap =new HashMap<String, Object>();
fieldMap.put("result","8888");
fieldMap.put("rest","888");
JSONObject jsonObject = JSONObject.fromObject(fieldMap);
String msg = new HttpClientHandle().post(jsonObject.toString(),"http://localhost:8080/SSM/teacher/insert");

//get方法

//String msg = new HttpClientHandle().get("","http://localhost:8080/SSM/teacher/update/10101542452425");
System.out.println(msg);
}

/**
*
* @param xmlmsg
* @param ServerUrl
* @param method
* @return
*/
public String sendHttpXML(String xmlmsg, String ServerUrl, String method) {
OutputStream out = null;
BufferedReader rs = null;
try {
// 1、建立连接
URL url = new URL(ServerUrl);
HttpURLConnection urlcon = (HttpURLConnection) url.openConnection();
urlcon.setReadTimeout(HttpTimeOut);
urlcon.setConnectTimeout(HttpTimeOut);
urlcon.setDoOutput(true);
urlcon.setDoInput(true);
urlcon.setRequestMethod(method);

//一定要设置 Content-Type 要不然服务端接收不到参数

urlcon.setRequestProperty("Content-Type", "application/Json;charset=UTF-8");

// 2、发送消息
if(Method_Post.equals(method) && !"".equals(xmlmsg)) {
out = urlcon.getOutputStream();
//Log.debug("==================sendHttpXML: " + xmlmsg);
out.write(xmlmsg.getBytes("UTF-8"));
out.flush();
}
urlcon.connect();

// 3、接收消息
rs = new BufferedReader(new InputStreamReader(urlcon.getInputStream(),"UTF-8"));
String line = rs.readLine();
StringBuffer str = new StringBuffer();
while(null != line) {
str.append(line);
line = rs.readLine();
}
//Log.debug("==================return xml" + str.toString());

return str.toString();

} catch (IOException e) {
//Log.infoStackTrace(e);
return null;
} catch (Exception e) {
//Log.infoStackTrace(e);
return null;
} finally {
if (rs != null) {
try {
rs.close();
rs = null;
} catch (IOException e) {
//Log.warnStackTrace(e);
}
}
if (out != null) {
try {
out.close();
out = null;
} catch (IOException e) {
//Log.warnStackTrace(e);
}
}
}
}

/**
* POST方式请求
* @param xmlmsg
* @param ServerUrl
* @return
*/
public String post(String xmlmsg, String ServerUrl) {
return sendHttpXML(xmlmsg, ServerUrl, Method_Post);
}

/**
* GET方式请求
* @param xmlmsg
* @param ServerUrl
* @return
*/
public String get(String xmlmsg, String ServerUrl) {
return sendHttpXML(xmlmsg, ServerUrl, Method_Get);
}

}

--------------------------------------------------接收方法------------------------

//Post
@RequestMapping("/insert")
public String toAddTeacherPage(HttpServletRequest request ) throws Exception {
InputStreamReader reader=new InputStreamReader(request.getInputStream());
BufferedReader buffer=new BufferedReader(reader);
String data=buffer.readLine();
System.out.println(data);
return "insert";
}

//Get

@RequestMapping(value="/update/{id}")
public ModelAndView updateById(@PathVariable("id") String id){
System.out.println(id);
return new ModelAndView("update");
}

本文属于原创,转载请注明出处。

HttpURLConnection实现两个服务端的对接的更多相关文章

  1. httpurlconnection发送文件到服务端并接收

    httpurlconnection发送文件到服务端并接收 客户端 import java.io.DataInputStream; import java.io.File; import java.io ...

  2. android菜鸟学习笔记24----与服务器端交互(一)使用HttpURLConnection和HttpClient请求服务端数据

    主要是基于HTTP协议与服务端进行交互. 涉及到的类和接口有:URL.HttpURLConnection.HttpClient等 URL: 使用一个String类型的url构造一个URL对象,如: U ...

  3. Onvif开发之服务端成功对接Rtsp视频流篇

    前面篇介绍onvif服务端的发现功能,继续在之前的代码基础上完成一个RTSP流的工作,也就是客户端通过ONVIF协议来预览设备端在这个之前必须确定几个简单的条件1 设备端能被发现2 设备端支持RTSP ...

  4. 服务端JavaScript之Rhino

    最近在看js的书,书上有介绍两个服务端js,以前只听说过node.js,第一次听说Rhino.js,并且已经集成到了jdk1.6;看来还是见的少啊! Rhino是一种用Java编写的javaScrip ...

  5. 从服务端架构设计角度,深入理解大型APP架构升级

    随着智能设备普及和移动互联网发展,移动端应用逐渐成为用户新入口,重要性越来越突出.但企业一般是先有PC端应用,再推APP,APP 1.0版的功能大多从现有PC应用平移过来,没有针对移动自身特点考虑AP ...

  6. (二)svn服务端安装配置

    两种服务端安装包 官方安装包 官方网站:http://subversion.apache.org/ 下载:http://subversion.apache.org/download.cgi 官方提供的 ...

  7. React 服务端渲染最佳解决方案

    最近在开发一个服务端渲染工具,通过一篇小文大致介绍下服务端渲染,和服务端渲染的方式方法.在此文后面有两中服务端渲染方式的构思,根据你对服务端渲染的利弊权衡,你会选择哪一种服务端渲染方式呢? 什么是服务 ...

  8. React 服务端渲染方案完美的解决方案

    最近在开发一个服务端渲染工具,通过一篇小文大致介绍下服务端渲染,和服务端渲染的方式方法.在此文后面有两中服务端渲染方式的构思,根据你对服务端渲染的利弊权衡,你会选择哪一种服务端渲染方式呢? 什么是服务 ...

  9. go语言游戏服务端开发(一)——架构

    五邑隐侠,本名关健昌,12年游戏生涯. 本教程以Go语言为例.   网络游戏程序分为客户端和服务端.客户端负责图形渲染.交互和一些简单校验处理,服务端负责业务逻辑处理.数据存储. 我们开发一个游戏de ...

随机推荐

  1. jquery 精度计算代码,指定精确小数位

    jquery代码: /** * 将标签的值格式化 * id 标签id * min 最小值 * max 最大值 */ function toFloat(id,min,max){ var htmlVal ...

  2. 【canvas系列】用canvas实现一个colorpicker

    每个浏览器都有自己的特点,比如今天要做的colorpicker就是,一千个浏览器,一千个哈姆雷特,一千个colorpicker.今天canvas系列就用canvas做一个colorpicker. ** ...

  3. angular2使用官网npm install下载依赖失败的处理方法

    上一两个月在学习angular2,在下载依赖阶段看官网是直接自动下载的,[npm install] 就能把依赖全部弄下来.不过作为新手的我,是倒腾来倒腾去都倒不出来,因为老是报同一个错.官网也还有手动 ...

  4. php基础知识掌握——四种界定符

    闲来无事,研究了与java.c#完全不同的领域php,php即(外文名:PHP: Hypertext Preprocessor,中文名:"超文本预处理器"),对于学习php的初学者 ...

  5. HTTP学习(一)初识HTTP

    作为一名准前端开发工程师,必须要对http基础知识有一定的了解,可是想学习HTTP相关的知识,发现国内只有两本相关的图书,<HTTP权威指南>和<图解http>,所有的书但凡带 ...

  6. 自己用到的相关Linux命令,谨以记录

    1.查看磁盘使用情况 df -h(方便看些) df -l(字节大小,不方便看) 2.查看根目录下文件/文件夹大小 du -sh /*(/*表示根目录下所有文件) 3.查看文件列表时显示文件大小 ll ...

  7. git链接GitHub命令及基本操作

    Git是一款不错的代码管理工具,下面引用百科的一段话:  Git是用于Linux内核开发的版本控制工具.与CVS.Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服 ...

  8. 学习笔记——Java字符串操作常用方法

    1.创建字符串 最常用的是使用String类的构造方法:String s=new String("abcd"); 也可采用J2SE5.0添加的StringBuilder类的字符串构 ...

  9. SUN SERVER X3-2 服务器数据写入缓慢

    使用一台sun server x3-2,SAS 300G 2.5寸硬盘两块:8G内存条*2,CPU E5-2609V3 安装一套服务器系统时感觉安装进度很慢,但一直找不到原因,因为要重做系统,同事练手 ...

  10. css修炼宝典

    前端岗位目前确实十分火热,但是就业压力也很大:前一段时间与大学同学交谈,他向我哭诉说去一个机构学习了前端工程师,我心底里为他高兴,因为他马上就可以月薪突破10K了,可是不幸的是他说去北京面试一个月,还 ...