使用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}
版权声明:原创文章,转载请标明出处。

相关文章推荐

J2EE项目系列(三)--Spring Data JPA+Spring+SpringMVC+Maven快速开发(2)多个第三方服务端接入之云旺IM

我们来继续这个系列,今天给大家讲下IM的云旺IM快速接入,当然也顺便推荐讲下其他的IM。 文章结构:(1)IM的介绍、第三方IM的推荐以及服务端接入配合App的大概流程;(2)云旺IM快速接入。...

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

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

maven 项目(五) spring集成springMVC开发统一接入API--实现test接口

为什么要采用测试接口的方式:贴完代码我再来说; 1.贴张图片 2.是测试接口地址的暴露方式: @Controller public class ApiTestController { ...

如何为 SpringMVC 编写单元测试:普通 Controller 测试

前一篇文章我们已经知道如何配置使用了 SpringMVC 测试框架的单元测试。现在我们就该亲身实践下如何为普通 Controller 编写单元测试了。接下来一个很明显的问题就是:什么是普通 Contr...

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

客户端代码 所需jar HttpClient代码 import java.io.UnsupportedEncodingException; import java.nio.charset.Charse...

springmvc 实现http接口 接受json参数

使用springmvc实现http接口时,发现问题。将参数直接放入url里面参数能被正常解析到如下: public void test(  Long roleId,  Integer roleCod...

使用HttpClient实现接口测试

使用HttpClient4.2.5做了一个简单的接口测试的实验,记录下来以后参考。 package cn.test; import java.io.IOException; import org....

接口测试之HttpClient

HttpClient使用详解 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不...
  • wanglha
  • wanglha
  • 2015年10月13日 14:05
  • 1935

JAVA发送http get/post请求,调用http接口、方法

三个例子 —JAVA发送http get/post请求,调用http接口、方法例1:使用 HttpClient (commons-httpclient-3.0.jar jar下载地址:h...

spring mvc 实现远程服务调用的几种方式

org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter 实现远程服务调用 服务端 必须要实现 bean实体类  se...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用HttpClient测试SpringMVC的接口
举报原因:
原因补充:

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