我正在向端点发出一个简单的POST请求,该端点仅接受“ multipart / form-data”。我知道Unirest会分析我的所有字段类型,并相应地自行设置内容类型。
MultipartBody request = Unirest.post("http://somendpoint")
.field("attachment", new File("D:\\home\\Documents\\Bird.jpg"))
.field("name", "Bob","text/plain");
System.out.println(request.getEntity().getContentType());
所以这里的输出是
Content-Type: multipart/form-data; boundary=hfADYluLg3pgP7ejEXn-3zj-yiqgSj
这是非常正确的。现在的问题是,“附件”字段对于我的请求是可选的。删除附件后,我得到了400,因为端点接受的内容类型与我的请求不匹配。代码:
MultipartBody request = Unirest.post("http://somendpoint")
.header("Content-type", "multipart/form-data")
.field("name", "Bob","text/plain");
System.out.println(request.getEntity().getContentType());
输出:
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
无论如何,我是否可以强迫Unirest设置所需的内容类型?