HTTP接口测试代码,HTTP GET/POST模拟请求测试工具
引用包
<!-- https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient -->
<dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.1</version>
</dependency>
package com.gfjh.core;import java.net.InetAddress;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethodBase;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.DeleteMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.HeadMethod;
import org.apache.commons.httpclient.methods.OptionsMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.PutMethod;
import org.apache.commons.httpclient.methods.TraceMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.lang3.StringUtils;public class c {public static void main(String[] args) {// TODO Auto-generated method stubString type = "Get";String url = "http://www.baidu.com";Map<String, Object> map = new HashMap<String, Object>();double begin = System.currentTimeMillis();HttpMethodBase method = null;try {// 匹配请求if ("Post".equals(type)) {method = new PostMethod(url);} else if ("Get".equals(type)) {method = new GetMethod(url);} else if ("Delete".equals(type)) {method = new DeleteMethod(url);} else if ("Put".equals(type)) {method = new PutMethod(url);} else if ("Trace".equals(type)) {method = new TraceMethod(url);} else if ("Head".equals(type)) {method = new HeadMethod(url);} else if ("Options".equals(type)) {method = new OptionsMethod(url);}HttpClient client = new HttpClient();client.setConnectionTimeout(30000);client.setTimeout(30000);client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);method.setRequestHeader("Connection", "close");method.setRequestHeader("Referer", "https://www.sojson.com");method.setRequestHeader("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0");// 设置参数String[] keys = null, values = null;NameValuePair[] params = new NameValuePair[keys.length];for (int i = 0; i < keys.length; i++) {params[i] = new NameValuePair(keys[i], values[i]);}method.setQueryString(params);// 设置请求头 和上面方法一致,如果一样,那么就覆盖。String[] headKeys = null, headValues = null;if (headKeys.length > 0) {for (int i = 0; i < headKeys.length; i++) {method.setRequestHeader(headKeys[i], headValues[i]);}}int status = client.executeMethod(method);map.put("status", status);Header[] heads = method.getResponseHeaders();// 获取请求的Host,用于IP解析String host = method.getHostConfiguration().getHost();StringBuffer sb = new StringBuffer("");for (Header header : heads) {sb.append(header.getName()).append(" : ").append(header.getValue()).append("\r\n");}// 头信息map.put("head", sb.toString());String result = method.getResponseBodyAsString();map.put("result", result);String ip = "未知";try {InetAddress iAddress = InetAddress.getByName(host);ip = iAddress.getHostAddress();map.put("host", ip);} catch (Exception e) {System.out.println("获取IP地址失败,域名:" + host);}} catch (UnknownHostException e) {// 域名错误map.put("message", "请输入正确的网址");System.out.println("网址异常[%s]" + url);} catch (SocketTimeoutException e) {// 超时map.put("message", "请求地址超时");System.out.println("请求地址超时[%s]" + url);} catch (Exception e) {// 其他异常map.put("message", "请求出现未知异常,请重试!");System.out.println("请求出现未知异常,请重试!" + url);}double end = System.currentTimeMillis();map.put("time", (end - begin) / 1000);}}
HTTP接口测试代码,HTTP GET/POST模拟请求测试工具相关推荐
- java api 测试工具_Java 实现在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具
本站工具,在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具后台所有实现代码.支持的请求协议有:Post.GetDelete.Put.Trace.Head.Options.特色是加了 ...
- 在线post测试java接口测试_好用的在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具-ApiPost...
现在的模拟发送请求插件很多比如老外的postman等,但亲测咱们国内的 ApiPost 更好用一些,因为它不仅可以模拟发送get.post.delete.put请求,还可以导出文档,支持团队协作也是它 ...
- 接口测试及接口抓包常用的测试工具有哪些?
目录 接口 接口测试的重要性 常用抓包工具 01.F12 02.Fiddler抓包工具 03.Charles抓包工具 04.Firebug抓包工具 05.httpwatch抓包工具 06.Wiresh ...
- [AX2012] 用户权限模拟与测试工具
在AX2012系统中,如果给用户配置了权限,需要进行测试.在没有用户密码的情况下,如何测试用户的权限配置的是否正确呢?这个时候,如果有个工具能模拟一下用户登陆后的界面就好了,这个时候,你就需要用到Se ...
- Postman-APP登入模拟请求-数据加解密
Postman-APP登入模拟请求-数据加解密 简单说明一下 对于Postman的使用,一般情况下只要发发确定的请求与参数就可以的了.这个大家都会的 ,灰常的简单. 然而,在使用的时候,尤其是接口测试 ...
- java如何模拟请求_单元测试如何模拟用户请求
python web自动化测试设计构工具书 40.9元 包邮 (需用券) 去购买 > 错误 正当我高高兴兴写完后台c层的测试代码准备提交时,测试机器人报了很多401错误,把代码拉下来一看,原来当 ...
- Charles 抓包工具教程(七) Charles- compose 创建模拟请求
本文为在霍格沃兹测试开发学社中学习到的一些技术,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ Charles- compose 创建模拟请求 一.背景 二.Compose 一. ...
- Python3 微信公众平台模拟登陆 requests模拟请求
声明此代码仅供技术交流学习,擅自用于其他,一切后果与本人无关 目标网址: https://mp.weixin.qq.com/ 所谓模拟登陆,就是自己模拟构造请求发送给服务器,然后服务器返回认证的信息过 ...
- CURL模拟请求(get/post)
[先知] http协议是客户端和服务端数据交互而定的规范. 具有如下特点:1.一般是基于B/S结构访问.2.无状态服务端没有记忆功能,不能识别客户端.3.无连接主要是在说http 1.0,它是短连接, ...
最新文章
- 数据格式、类型系统与展示
- K12教育整体业务流程+涉及各类产品分析
- 我的C3P0的一些配置心得
- leetcode35. 搜索插入位置(二分搜索)
- jdbc工具类 配置版本 20210412_222527.mp4
- Android 浮窗开发之窗口层级
- python的递归为什么难理解,python - Python - 很难理解这个递归代码示例 - SO中文参考 - www.soinside.com...
- sqlite字符串连接(追加写入)
- python selenium安装教程_Python Selenium模块安装使用教程详解
- AngularJS 之 ng-model
- 委托的Invoke与BeginInvoke
- PCIE协议解析 synopsys IP loopback 读书笔记(1)
- unity算法面试_Unity面试准备
- 微信聊天记录导出(2020新版)
- 马哥linux高端班视频,马哥Linux高端运维云计算就业班
- vscode终端清屏
- 拉钩网爬取所有python职位信息
- 搬家公司会帮忙打包东西吗?一条龙服务
- hc sr501 c语言程序,HC-SR501人体红外感应模块资料汇总(原理图、常见问题、程序等)...
- WiFi共享精灵,生活好伴侣