`
1028826685
  • 浏览: 920687 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

SpringMvc HttpClient上传参数

 
阅读更多

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;
    }
}

 

分享到:
评论

相关推荐

    一个可以直接运行的基于SpringMVC的web框架1.1.12

    首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...

    基于SpringMVC的一个web框架

    首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...

    SpringMVC基础上的web框架

    首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...

    可以直接运行的基于SpringMVC的web框架示例,也可以直接当公司框架

    首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...

    基于Spring MVC的web框架 1.1.11

    首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...

    基于Dubbo实现的SOA分布式(没有实现分布式事务)-SpringBoot整合各种组件的JavaWeb脚手架+源代码+文档

    - SpringMVC - Spring - MyBaits - MyBatis Generator - MyBatis PageHelper - Druid - Lombok - JWT - Spring Security - JavaMail - Thymeleaf - HttpClient - FileUpload - Spring Scheduler - Hibernate ...

    Eclipse开发分布式商城系统+完整视频代码及文档

    │ 06.FastDFS安装步骤-文件上传.avi │ 07.配置nginx插件访问图片.avi │ 08.测试图片上传.avi │ 09.FastDFS工具类的使用.avi │ 10.图片上传过程分析.avi │ 11.图片上传Service.avi │ 12.图片上传完成.avi │ ...

    ssm框架酒吧系统完整导入可运行带sql

    进去之后会触发一个页面刷新的方法,之后在里面填写寄存产品的信息 其中,会员信息和产品信息都是从数据库中查询出来的,可以进行自动赋值,还有寄存单号是自动生成的随机数,之后金额的value也是在...短信HttpClient

    一个适合新手学习的电商项目

    spring,springmvc,mybatis(框架) solr(搜索服务),redis(缓存),easyUI(后台系统页面) ### 数据库设计 tb_user用户表(id,username,password,phone,email,created,updated) tb_item商品表(id,title,sell_point,...

Global site tag (gtag.js) - Google Analytics