Как опубликовать файл в okhttp3 как «значение» под парой ключ / значение в теле? - PullRequest
0 голосов
/ 23 октября 2019

У меня есть запрос почтальона, который отправляет файл в конечную точку. Конечная точка требует, чтобы файл входил в тело, ключом является fileContent, а значением - сам файл. Я знаю, как отправить файл через okhttp3, но постоянно получаю сообщения об ошибках, так как поле fileContent не существует. Вот как он настроен через средство записи / буферизации:

        writer.append("Content-Disposition: form-data; name=\"fileContent\"; filename=\"\"").append(LINE_FEED);

почтальон имеет возможность экспортировать запрос как java-код okhttp3, и это работает для меня. Тем не менее, так настроен запрос, потому что он извлекает файл с моего локального компьютера:

  RequestBody body = RequestBody.create(mediaType, "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"fileContent\"; filename=\\\"\\\"\"\r\nContent-Type: application/octet-stream\r\n\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--");

, где путь к моему файлу указан после 'filename'. Я хотел бы сохранить это, как оно работает, но чтобы файл был добавлен динамически в качестве входного потока или файла, состоящего из нескольких частей, а не получить его из моего локального. Насколько я знаю, функция

RequestBody.create не имеет ничего, что я ищу, это MediaType, затем string, затем file. Есть идеи?

...