我正在尝试使用 unirest 库在 post 请求中完成发送文件。这是邮递员的工作卷曲:
curl --location --request POST 'https://k9.testing.rs/api/org/v1/invoice/send/file?pibSender=105622807&pibReceiver=106946734&contactName=Nenad&contactEmail=something@gmail.com' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjBiODA1ZmE5Zjc2ZjUyY2QzMTVmNmIyZDc2NDVlMmVmNzRhMzdmNjhiNDA1NWM5MjFjMTM5NzFlYzcyMmFkODc1ZTY1YTQxMmE1ZTQwMzYyIn0.eyJhdWQiOiIxIiwianRpIjoiMGI4MDVmYTlmNzZmNTJjZDMxNWY2YjJkNzY0NWUyZWY3NGEzN2Y2OGI0MDU1YzkyMWMxMzk3MWVjNzIyYWQ4NzVlNjVhNDEyYTVlNDAzNjIiLCJpYXQiOjE2MTY3ODI1OTgsIm5iZiI6MTYxNjc4MjU5OCwiZXhwIjoxNjQ4MzE4NTk4LCJzdWIiOiIxIiwic2NvcGVzIjpbXSwidXNlcm5hbWUiOiJqb3ZhbmEudGVzdDExN0BwYXJhZ3JhZi5ycyJ9.HUk-r0SPs99Ty9_PJO11ytao0C0uZ6R1mhn2kgnwrf-dNJryp975uNumPhxUqRDmEJXrGvXg9JYkV55N00-Cn9rTI9S-Y8s-e8jN12sUC4hlT6nJz4ABXJqPPAz-pVbwJ0qC48zp6Xov1IZYBQEskQQsIbvLrrG6sxSZg-iPn-FAtKXYOql-sY0R8ZCNJWOpaZBknh4YmX-g4a5xNkZJnmqf2fpUM3D4KzfxuLry95dqih0Gi17zJqSCfjpwzLBvkdiSesgeYNLYIEAPNi4Tf-68i1kyYz-i4XnagQlBb0YHCtgEMyxiS9IuueFON4V4BN6WUWYuYhtAFWzUE7S1oW-pfQMqY-0Fn7KrtaMdUcSlodpCTYqzoosDg1u_i20O37jD044Z7AWH6-IJfWqo2rziWHPW9s-_94dExJF1V6N-NRbK2QPh2H8LzmQIM2kcoYo-jikmAY3EPJj4-6rniopzon4gwKH7F_xoOiwtT1-sMIeh-3KtVVYoH3tMv5eRojA4EG-xWw3UPwfGwqPBnuzn2B6K_3gmtpmT0sDTtr7ljfJywZOeMDWf16vVVm_DEjnUR56OU_HPSFkUqKRdyi0LUOrQzxrNHgfVsWtB85FWIpvGEWSCTJi2YiADpM5N0JAHSCfqK3e3hp3U8OwipQTKKWexXaaGU-fYjzTXWNc' \
--header 'Cookie: session=wprR8vrO0Gq0aN0wk7Mf1H5bC2TYMJzKXsOYRfPB' \
--form 'file=@"someFile.pdf"'
我尝试了基本示例,但没有成功,每次我收到请求中不存在文件的响应时(当正文中没有文件时,这与邮递员的响应相同)。如何用 unirest 来实现这一点,应该很简单。
这是我尝试过的,但它不起作用:
CompletableFuture<HttpResponse<SendInvoiceResponse>> future = Unirest.post("https://k9.test.rs/api/org/v1/invoice/send/file")
.header("accept", "application/json")
.header("Content-Type", "application/pdf")
.header("Authorization", "Bearer " + token)
.queryString("senderPib", "105622807")
.queryString("receiverPib", "106946734")
.queryString("contactName", "test")
.queryString("contactEmail", "test@gmail.com")
.field("file", new File(filePath))
.asObjectAsync(SendInvoiceResponse.class, new Callback<SendInvoiceResponse>() {
public void failed(UnirestException e) {
logger.info("The request has failed");
}
public void completed(HttpResponse<SendInvoiceResponse> response) {
int code = response.getStatus();
Headers headers = response.getHeaders();
SendInvoiceResponse body = response.getBody();
}
public void cancelled() {
logger.info("The request has been cancelled");
}
});