最近在用 rest-assured 测接口,比 httpClient 好用太多,但是在上传 文件名包含中文的时候,文件名发到后端是乱码,折腾了我大半天
我讲解一个问题,不会从计算机的起源开始叨逼叨半天废话一大堆
我只是负责解决问题,如果解决不了工作中的问题,
天天研究底层,研究 List 的迭代有 4 种写法,研究使用 lambda 可以让你少写几个字母也没啥卵用
技术只是一种解决问题的工具而已
为团队赋能,直接上代码,用下面的代码就可以决绝 上传文件名中包含中文的乱码问题:
package forBugs;
import io.restassured.config.HttpClientConfig;
import io.restassured.config.RestAssuredConfig;
import org.testng.annotations.Test;
import java.io.File;
import static io.restassured.RestAssured.given;
import static io.restassured.config.MultiPartConfig.multiPartConfig;
import static org.apache.http.entity.mime.HttpMultipartMode.BROWSER_COMPATIBLE;
public class C {
@Test
public void main() {
String s = given().config(RestAssuredConfig.config()
.httpClient(HttpClientConfig.httpClientConfig().httpMultipartMode(BROWSER_COMPATIBLE))
.multiPartConfig(multiPartConfig().defaultCharset("UTF-8")))
.multiPart(new File("C:\\temp\\1394356510\\希尔顿.json"))
.header("Cookie", "JSESSIONID=1233")
.param("type", "json")
.when()
.post("http://alipay.com/upload")
.then()
.extract()
.response().asString();
System.out.println(s);
}
}
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>4.3.3</version>
</dependency>
就这样