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

相关文章推荐

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

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

Apache HttpClient调用Spring3 MVC Restful Web API演示

使用httpclient调用spring3 mvc做称web API,实现json数据交换与对象解析,实现httpclient到web 服务的调用

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合...

ssm(spring+springMVC+Mybatis)框架 集成Quartz(定时任务框架)

1、ssm框架基础jar 包 aopalliance.jar aspectjrt.jar aspectjweaver.jar commons-beanutils-1.9.2.jar commons-...

在SSM框架中配置定时任务

在项目中需要添加一个定时任务,完成每天晚上访问第三方接口用于同步数据,在实际中这样的定时任务需求很多,比如系统日志,备份等等,特在网上找了相关内容。 此处使用的是SSM框架,SpringMVC的配置...

SSM框架整合 quartz 定时任务调度

maven的pom.xml org.quartz-scheduler 石英 2....
  • Gooooa
  • Gooooa
  • 2017-01-11 14:36
  • 1408

使用Apache Httpclient访问Spring rest接口下载文件

使用Apache Httpclient访问Spring rest接口下载文件 1.编写Spring rest接口,该接口将文件读入到流中并通过ResponseEntity对象返回@RequestMa...

SpringMVC返回json数据的三种方式

1、第一种方式是spring2时代的产物,也就是每个json视图controller配置一个Jsoniew。 如:  或者 同样要用jackson的jar包。 2、第二种使用JSON工具将对象序列...

使用java(spring)编写ajax的接口如何返回给请求者数据

这几天写java(springboot)接口时想记录一下返回给前端接口数据的方式 public void myfunction(HttpServletRequest request,HttpSer...

ssm框架整合及Rest风格接口实现

1.基于Maven的SSM框架整合即Spring+SpringMVC+Mybatis三大框架进行整合。 2.Rest接口的实现示例 详细教程
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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