javax.ws.rs.client.WebTarget POST и получите ответ одновременно - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть API отдыха, который предоставляет метод POST, который преобразует входные данные и передает их в виде выходных данных (вход также транслируется, поэтому мы можем передавать огромные данные).

Используя curl, я могучтобы обработать ответ в то же время, что и я, отправляю данные следующим образом:

curl -uadmin -X POST "http://XXXX:8080/process" -H  "Content-Type: application/octet-stream" --data-binary @myFile.csv > output.csv
Enter host password for user 'admin':
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0 5868M    0 14826    0  106k   3627  26777 63:50:21  0:00:04 63:50:17 31293

Как вы можете видеть, curl может получать данные при отправке данных.

Моя проблемаявляется то, что я хотел бы добиться того же, используя Java (делая работу Apache Spark), но не могу заставить его работать.Когда я использую программу, я не могу получить объект Response:

Response response = (javax.ws.rs.client.WebTarget)target.request().post(Entity.entity(is, MediaType.APPLICATION_OCTET_STREAM))

Может кто-нибудь помочь мне решить эту проблему?(внизу java использует jersey-client 2.22.2)

1 Ответ

0 голосов
/ 28 сентября 2018

Я наконец нашел хорошую библиотеку: async-http-client.Просто используя функциональность org.asynchttpclient.handler.TransferCompletionHandler.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...