http请求一个servlet(接口)地址
来源:互联网 发布:俄罗斯 叙利亚 知乎 编辑:程序博客网 时间:2024/06/02 07:30
以前测试一个自己写的接口总是用火狐浏览器的httpRequester进行请求,但是那个东西并不准确(有的时候能捕捉到没有被捕获的异常),而且后台上要跟其它的平台进行数据交互,想自己写一个http请求小方法然后进行测试,后台也能用上。MDZZ研究一上午,中午想明白了遂写代码测试成功,贴出来记录一下。
import java.io.BufferedReader;import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.nio.charset.Charset;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.HttpStatus;import org.apache.commons.httpclient.methods.InputStreamRequestEntity;import org.apache.commons.httpclient.methods.PostMethod;import org.apache.commons.httpclient.methods.RequestEntity;import org.apache.commons.httpclient.params.HttpConnectionManagerParams;import org.apache.commons.httpclient.params.HttpMethodParams;import com.alibaba.fastjson.JSONObject;public class HttpClientTest {public static void main(String[] args) throws HttpException, IOException {//请求地址String url="http://xxxx:xxxx/xxxx/xxxxServlet";//组装请求数据JSONObject json=new JSONObject();JSONObject requestJson=new JSONObject();json.put("A", "A");json.put("B", "B");requestJson.put("C", "C");requestJson.put("D", "D");json.put("request", requestJson);/******正式的数据请求******/HttpClient client=new HttpClient();PostMethod method=new PostMethod(url);byte[] bytes = json.toString().getBytes("UTF-8");InputStream inputStream = new ByteArrayInputStream(bytes,0,bytes.length);//setRequestBody方法在http3.1之后被替换成setRequestEntityRequestEntity re=new InputStreamRequestEntity(inputStream,bytes.length,"charset=utf-8");method.setRequestEntity(re);method.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "GBK");//设置超时的代码段HttpConnectionManagerParams managerParams = client.getHttpConnectionManager().getParams();//设置连接超时时间(单位毫秒)managerParams.setConnectionTimeout(10000);//查看状态int status = client.executeMethod(method);if (status != HttpStatus.SC_OK) {System.out.println( "连接" + url+ "出错!错误代码为:" + status);throw new IllegalStateException("Method failed: "+ method.getStatusLine());}//处理返回的数据InputStream txtis = method.getResponseBodyAsStream();/* eclipse 环境开发环境迁移之后导致的返回报文乱码问题修改 */BufferedReader br = new BufferedReader(new InputStreamReader(txtis,Charset.forName("UTF-8")));//为了更直观的看到返回的数据而写的方法StringBuffer html = new StringBuffer(100);String tempbf;while ((tempbf = br.readLine()) != null) {html.append(tempbf);}method.releaseConnection();System.out.println(html.toString());}}
大致就是这样的请求方式,经测试暂无问题。还有一种接口的请求方式原理上大致就是在地址后面拼上参数然后整个长地址进行请求,只需把url后面拼完参数整个的地址请
求即可。上述方法如果有乱码的情况改改请求格式即可。
阅读全文
0 0
- http请求一个servlet(接口)地址
- Servlet处理HTTP请求(2)
- Servlet处理HTTP请求(3)
- Servlet的HTTP请求(成长记录)
- Servlet 客户端 HTTP 请求
- Servlet 客户端 HTTP 请求
- Servlet处理HTTP请求
- Servlet 客户端 HTTP 请求
- servlet处理http请求
- servlet处理http请求
- Servlet 客户端 HTTP 请求
- 异步请求http地址
- Http请求地址
- 0038-http请求地址
- Servlet客户请求的处理:HTTP请求报头HttpServletRequest接口应用
- Java Servlet学习笔记(四)Servlet客户端Http请求
- HTTP请求接口方法(POST/GET)
- 请求 http 接口
- Proxmox环境下 Ubuntu16.04 + CUDA 8.0 GA2 安装
- rtmp直播拉流安卓开发
- 【安全牛学习笔记】 HTTPS攻击
- Golang
- 1064. 朋友数(20)
- http请求一个servlet(接口)地址
- C语言是什么 重要吗?
- Image_loader
- CentOS 7.2 挂载网络磁盘
- 深入剖析ThreadLocal
- 6 ZigZag Conversion
- PAT 乙级练习题1021. 个位数统计 (15)
- 推荐一个C# GDI+ 自定义控件
- JavaEE中Web服务器、Web容器、Application服务器区别及联系