使用HttpClient测试SpringMVC的接口

原创 2016年08月29日 18:37:59

最近在写SSM创建的Web项目,写到一个对外接口时需要做测试,接受json格式的数据。在线测试需要放公网地址,无奈localhost无法访问,测试工具需要安装,不想折腾,想到写爬虫的时候用到的HttpClient可以发Post请求,于是进行了尝试。

1.编写请求代码
由于接口接受json类型的数据,因此构造了对应的实体类,然后使用fastjson转为json,加到请求头中。

    String url = "http://localhost:8080/api/hcp/get";
        Map<String, Object> map = new HashMap<String, Object>();  //构造参数
        map.put("token", "Tq0kzItQdol1pO4T");
        String result = APITest.API(url, JSONObject.toJSONString(map));  //使用FastJson转为json格式
        System.out.println(result);

2.APITest.java帮助类

public class APITest {
    /**
     * 
     * @param 要请求的接口地址
     * @param post参数
     * @return 接口返回的数据
     * @throws IOException
     */
    public static String API(String url,String parameters) throws IOException{
        System.out.println("参数:"+parameters);
        HttpClient httpclient = new DefaultHttpClient();
        //新建Http  post请求  
        HttpPost httppost = new HttpPost(url);    //登录链接
        httppost.setEntity(new StringEntity(parameters, Charset.forName("UTF-8")));   
        httppost.addHeader("Content-type","application/json; charset=utf-8");
        httppost.setHeader("Accept", "application/json");
        //处理请求,得到响应  
        HttpResponse response = httpclient.execute(httppost);   

        //打印返回的结果  
        HttpEntity entity = response.getEntity();  
       // Header[] map =  response.getAllHeaders();

        StringBuilder result = new StringBuilder();  
        if (entity != null) {  
            InputStream instream = entity.getContent();  
            BufferedReader br = new BufferedReader(new InputStreamReader(instream));  
            String temp = "";  
            while ((temp = br.readLine()) != null) {  
                String str = new String(temp.getBytes(), "utf-8");  
                result.append(str).append("\r\n");  
            }  
        }
        return result.toString();
    }
}

然后就可以运行了。

参数:{"token":"Tq0kzItQdol1pO4T"}
log4j:WARN No appenders could be found for logger (org.apache.http.impl.conn.BasicClientConnectionManager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
{"reason":"Token已过期","error_code":1,"result":null}
版权声明:原创文章,转载请标明出处。

HttpClient与Spring的整合

本文整合基于httpclient-4.5.2版本。加入httpclient依赖 org.apache.httpcomponents httpclient 4.5.2 编写Spr...
  • wuseyukui
  • wuseyukui
  • 2016年12月02日 15:58
  • 2443

如何为 SpringMVC 编写单元测试:REST API 篇

SpringMVC 为开发 REST API 提供了很便捷的途径。然而,想要为它们快速并全面的编写单元测试却显得没那么容易。SpringMVC 测试框架的发布则提供了快速全面编写高可读性单元测试的可能...
  • chen517611641
  • chen517611641
  • 2015年02月15日 16:21
  • 7487

Spring mvc REST风格对外接口,HttpClient调用

客户端代码 所需jar HttpClient代码 import java.io.UnsupportedEncodingException; import java.nio.charset.Charse...
  • qq_17254307
  • qq_17254307
  • 2017年04月11日 10:04
  • 5303

spring+httpclient完美集成,封装常用客户端工具类

spring+httpclient完美集成,封装常用客户端工具类1.导入依赖 4.0.2.RELEASE 4.5.2 ...
  • qq_35712358
  • qq_35712358
  • 2017年05月08日 17:42
  • 3297

SSM综合项目实战(TTSC) -- day07 RESTful,HttpClient,单点登录

一、RESTful介绍 二、RESTful风格开发商品接口 三、HttpClient介绍 四、使用HttpClient调用接口 五、单点登录介绍及分析 六、搭建SSO系统...
  • wingzhezhe
  • wingzhezhe
  • 2017年10月22日 12:01
  • 238

spring MVC 管理HttpClient---实现在java中直接向Controller发送请求

在spring MVC中,大多数时候是由客户端的页面通过ajax等方式向controller发送请求,但有时候需要在Java代码中直接向controller发送请求,这时可以使用HttpCilent实...
  • xiaobing_122613
  • xiaobing_122613
  • 2017年01月18日 12:00
  • 1005

HttpClient工具正确使用方式

虽然现在微服务非常的流行,但是公司内部的蛮多系统仍然对外提供http接口。在调用http接口工具类中,apache httpclient工具用的比较多。下面列举一些正确使用httpclient的一些要...
  • linsongbin1
  • linsongbin1
  • 2016年05月03日 14:12
  • 9070

Junit单元测试Spring框架接口

Web项目整合Spring后,所有的接口,类都可以加载到ApplicationContext中。项目不用启动也可以加载到内存中,并通过applicationContext获取。 使用main方法测试...
  • javawebxy
  • javawebxy
  • 2016年01月10日 04:37
  • 2358

Spring+Junit4进行接口测试

1.配置pom.xml [java] view plain copy  print?        org.springframework      ...
  • pwh309315228
  • pwh309315228
  • 2016年12月28日 17:24
  • 739

spring MVC 管理HttpClient---实现在java中直接向Controller发送请求

在spring MVC中,大多数时候是由客户端的页面通过ajax等方式向controller发送请求,但有时候需要在java代码中直接向controller发送请求,这时可以使用HttpCilent实...
  • u012116457
  • u012116457
  • 2015年06月19日 22:59
  • 22648
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用HttpClient测试SpringMVC的接口
举报原因:
原因补充:

(最多只允许输入30个字)