SpringMVC代码示例如下:
@RequestMapping(value = "doSendMessageServer",method=RequestMethod.POST, consumes="application/json")
@ResponseBody
public EasyResult doSendMessageServer(@RequestBody JSONObject jsonObject,HttpServletRequest request) {
String userkey=(String)jsonObject.get("userkey");
String content=(String)jsonObject.get("content");
String requestStr = GsonUtils.toJson(userkey) + GsonUtils.toJson(content);
logger.info("发送消息。req:" + requestStr);
try {
ChannelUser channelUser=null;
ChannelId channelId=CacheChannelUser.userkeyChannelId.get(userkey);
if(channelId!=null){
// 查找对应id的channel
channelUser=CacheChannelUser.cacheChannel.get(channelId.toString());
// channelUser=CacheChannelUser.cacheChannel.get(userkey);
if (null != channelUser) {
//test
itstack.demo.netty.server.pojo.Result result=new itstack.demo.netty.server.pojo.Result();
result.setContent(content);
result.setStatus(1);
result.setType(Global.SEND_SERVER_HANDLE_MSG);
TextWebSocketFrame tws = new TextWebSocketFrame(JSONObject.toJSONString(result));
channelUser.getChannel().writeAndFlush(tws);
} else {
return EasyResult.buildErrResult("对方已经下线");
}
}
return EasyResult.buildSuccessResult();
} catch (Exception e) {
logger.info("发送消息失败。req:" + requestStr, e);
return EasyResult.buildErrResult(e);
}
}
Client代码示例如下:
public static void main(String[] args) {
try {
NettyClient client=new NettyClient();
client.testHttpclient("1111111111");
// client.connect("192.168.3.128", 7398);
} catch (Exception e) {
e.printStackTrace();
}
}
public void testHttpclient(String userkey){
JSONObject jsonParam=new JSONObject();
jsonParam.put("userkey", userkey);
jsonParam.put("content", "这是内容");
String url="http://192.168.31.199:8080/itstack-demo-netty-server-web/socketServerController/doSendMessageServer.do";
try {
HttpClientUtil.httpPost(url, jsonParam);
// HttpClientUtil.doGet(url+"?userkey=1212&content=12312","UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
}
HttpClientUtil工具类:
import java.io.IOException;
import java.net.URLDecoder;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson.JSONObject;
public class HttpClientUtil {
private static Logger logger = LoggerFactory.getLogger(HttpClientUtil.class); //日志记录
/**
* httpPost
* @param url 路径
* @param jsonParam 参数
* @return
*/
public static JSONObject httpPost(String url,JSONObject jsonParam){
return httpPost(url, jsonParam, false);
}
/**
* post请求
* @param url url地址
* @param jsonParam 参数
* @param noNeedResponse 不需要返回结果
* @return
*/
public static JSONObject httpPost(String url,JSONObject jsonParam, boolean noNeedResponse){
//post请求返回结果
DefaultHttpClient httpClient = new DefaultHttpClient();
JSONObject jsonResult = null;
HttpPost method = new HttpPost(url);
try {
if (null != jsonParam) {
//解决中文乱码问题
StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8");
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
method.setEntity(entity);
}
HttpResponse result = httpClient.execute(method);
url = URLDecoder.decode(url, "UTF-8");
/**请求发送成功,并得到响应**/
if (result.getStatusLine().getStatusCode() == 200) {
String str = "";
try {
/**读取服务器返回过来的json字符串数据**/
str = EntityUtils.toString(result.getEntity());
if (noNeedResponse) {
return null;
}
/**把json字符串转换成json对象**/
jsonResult=JSONObject.parseObject(str);
} catch (Exception e) {
logger.error("post请求提交失败:" + url, e);
}
}
} catch (IOException e) {
logger.error("post请求提交失败:" + url, e);
}
return jsonResult;
}
/**
* 发送get请求
* @param url 路径
* @return
*/
public static JSONObject httpGet(String url){
//get请求返回结果
JSONObject jsonResult = null;
try {
DefaultHttpClient client = new DefaultHttpClient();
//发送get请求
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);
/**请求发送成功,并得到响应**/
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
/**读取服务器返回过来的json字符串数据**/
String strResult = EntityUtils.toString(response.getEntity());
/**把json字符串转换成json对象**/
jsonResult=JSONObject.parseObject(strResult);
url = URLDecoder.decode(url, "UTF-8");
} else {
logger.error("get请求提交失败:" + url);
}
} catch (IOException e) {
logger.error("get请求提交失败:" + url, e);
}
return jsonResult;
}
}
相关推荐
首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...
首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...
首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...
首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...
首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...
- SpringMVC - Spring - MyBaits - MyBatis Generator - MyBatis PageHelper - Druid - Lombok - JWT - Spring Security - JavaMail - Thymeleaf - HttpClient - FileUpload - Spring Scheduler - Hibernate ...
│ 06.FastDFS安装步骤-文件上传.avi │ 07.配置nginx插件访问图片.avi │ 08.测试图片上传.avi │ 09.FastDFS工具类的使用.avi │ 10.图片上传过程分析.avi │ 11.图片上传Service.avi │ 12.图片上传完成.avi │ ...
进去之后会触发一个页面刷新的方法,之后在里面填写寄存产品的信息 其中,会员信息和产品信息都是从数据库中查询出来的,可以进行自动赋值,还有寄存单号是自动生成的随机数,之后金额的value也是在...短信HttpClient
spring,springmvc,mybatis(框架) solr(搜索服务),redis(缓存),easyUI(后台系统页面) ### 数据库设计 tb_user用户表(id,username,password,phone,email,created,updated) tb_item商品表(id,title,sell_point,...