目录
1.http-request简介
2. 依赖导入
3. GET请求方式
3.1 test.php
3.2 基本使用代码实现
3.2 请求时请求参数URL编码实现
3.3 携带多参数请求
3. Post请求方式
3.1 基本使用
3.2 携带单个参数请求
3.3 携带多个参数请求
4. 设置代理请求
4.1 方式一
4.2 方式二
1.http-request简介
http-request 是一个库 里面提供很多方法,使得很容易就可以构造http请求,相比于之前使用的标准库类等要简单使用很多,目前通过此库来编写EXP较多.
2. 依赖导入
<dependency><groupId>com.github.kevinsawicki</groupId><artifactId>http-request</artifactId><version>5.6</version>
</dependency>
3. GET请求方式
3.1 test.php
<?php
var_dump($_REQUEST);
3.2 基本使用代码实现
相比于之前,实现是不是简单了很多
package com.deger.HttpRequest;import com.github.kevinsawicki.http.HttpRequest;public class HttpRequestTest {public static void main(String[] args) {//发送一个GET请求HttpRequest httpRequest = HttpRequest.get("http://127.0.0.1/test1.php?username=admin");//打印响应内容System.out.println(httpRequest.toString());//打印响应码System.out.println(httpRequest.code());//打印响应体// System.out.println(httpRequest.body());}
}
3.2 请求时请求参数URL编码实现
//没有编码请求HttpRequest httpRequest = HttpRequest.get("http://127.0.0.1/test1.php?username=小鱼");
//url编码 在参数后增加一个true
HttpRequest httpRequest = HttpRequest.get("http://127.0.0.1/test.php?username=小鱼", true);
没有编码情况
编码情况下:
3.3 携带多参数请求
只需要在请求后添加参数即可
HttpRequest httpRequest = HttpRequest.get("http://127.0.0.1/test.php?username=小鱼", true,"age","21");
3. Post请求方式
3.1 基本使用
只改变了调用的方法为post
HttpRequest httpRequest = HttpRequest.post("http://127.0.0.1/test.php?username=小鱼");
3.2 携带单个参数请求
HttpRequest httpRequest = HttpRequest.post("http://127.0.0.1/test.php").form("username","admin");
3.3 携带多个参数请求
Map<String,String> data = new HashMap<>();data.put("sex","男");data.put("age","21");data.put("username","小鱼");HttpRequest httpRequest = HttpRequest.post("http://127.0.0.1/test.php").form(data);
4. 设置代理请求
4.1 方式一
通过下面这种方式在我自己的电脑使用是没有用的,同规格burp无法抓到包,目前没有发现原因,可以尝试使用一下.
System.setProperty("proxyHost","127.0.0.1");
System.setProperty("proxyPort","8888");//http头信息HttpRequest httpRequest = HttpRequest.post("http://127.0.0.1/test.php").connectTimeout(5*1000).readTimeout(5*1000).form(data);
4.2 方式二
通过在另一种方式找到解决方案,设置.useProxy("127.0.0.1", 9999)属性
注意:.form(data);需要放到所有的参数后,不然会出现报错
//http头信息
HttpRequest httpRequest = HttpRequest.post("http://127.0.0.1/test.php").useProxy("127.0.0.1", 9999).connectTimeout(5*1000).readTimeout(5*1000).header("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3").form(data);