Как отправить HTTP-запрос Post с помощью JAVA, который содержит файл - PullRequest
0 голосов
/ 06 октября 2019

Я много гуглил, проб и ошибок, но не могу заставить это работать.

Я пытаюсь отправить запрос HTTP POST, используя JAVA, который включает файл для отправки. Это код, который я пробовал, который, кажется, не работает по какой-то причине:

public void iSendARequestToAnAPI() throws Exception {

  //This is the httpClient that you will use to send your http request
  CloseableHttpClient httpClient = HttpClients.createDefault();
  HttpPost httpPost = new HttpPost("https://xxxxxxxxxxxxxxxxx/document");

  httpPost.setHeader("tolerance", "strict");
  httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
  httpPost.setHeader("Authorization", "Bearer xxxx");

  File file = new File("C:\\Matt\\GBG\\drivinglicence.jpg");

  HttpEntity entity = MultipartEntityBuilder
    .create()
    .addBinaryBody("file", file, ContentType.create("image/jpeg"), file.getName())
    .build();

  httpPost.setEntity(entity);

  //Send the request
  CloseableHttpResponse response = httpClient.execute(httpPost);

  //Close the http client
  httpClient.close();

  }
}

Для информации, это команда curl, взятая из запроса Почтальона, который работает:

curl -X POST \
  https://idaasstaging.gbgplc.com/verify/documents/v2/document \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Postman-Token: 82966229-2e00-4309-a428-be66b4e8d8ca' \
  -H 'cache-control: no-cache' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -H 'tolerance: strict' \
  -F file=@/C:/Matt/GBG/uk-driving-licence.jpg

Кто-нибудь знает, что я делаю неправильно?

Я получаю следующий ответ, я не уверен, что это значит. Может быть, меня просто блокируют? Работает нормально с запросом почтальона:

<html style="height:100%"><head><META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"><meta name="format-detection" content="telephone=no"><meta name="viewport" content="initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"></head><body style="margin:0px;height:100%"><iframe id="main-iframe" src="/_Incapsula_Resource?CWUDNSAI=22&xinfo=12-233465551-0%20NNNN%20RT%281570437116752%20119%29%20q%280%200%20-1%20-1%29%20r%281%20-1%29%20B15%281%2c501%2c51%29%20U6&incident_id=801001040412185768-821262601053865612&edet=15&cinfo=010000003634" frameborder=0 width="100%" height="100%" marginheight="0px" marginwidth="0px">Request unsuccessful. Incapsula incident ID: 801001040412185768-821262601053865612</iframe></body></html>
...