Для следующей строки:
Код: Выделить всё
String fileName = "3$ Mù F'RANçé_33902_Country_5_202105";
String contentDisposition = "attachment;filename=" + "\"" + fileName + "\"";
Код: Выделить всё
Headers headers = new Headers.Builder()
.addUnsafeNonAscii("Content-Disposition", contentDisposition)
.add("Authorization", bearer)
.add("Content-type", "application/octet-stream")
.build();
Request request = new Request.Builder()
.headers(headers)
.post(requestBody)
.url(urlAddress)
.build();
Этот запрос отправлен фирме-партнеру, поэтому у меня нет доступа к серверной части.
Код: Выделить всё
application/octet-stream
Тело создается следующим образом:
Код: Выделить всё
byte[] data = FileUtils.readFileToByteArray(file);
RequestBody requestBody = RequestBody.create(data);
Полный MVCE (не может быть полным с информацией о файлах и серверной части, но в любом случае раньше он выходит из строя, поэтому вы можете просто запустить этот точный код, и он должен выдать ошибку):
Код: Выделить всё
public class App
{
public static void main( String[] args ) throws IOException
{
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/octet-stream");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("xxxx")
.method("POST", body)
.addHeader("Content-Type", "application/octet-stream")
.addHeader("content-disposition", "attachment;filename=\"3$ Mù F'RANçé_33902_Country_5_202105.csv\"")
.addHeader("Authorization", "Bearer xxxxx")
.addHeader("Cookie", "xxxxxx")
.build();
Response response = client.newCall(request).execute();
}
}
okhttp версия: 5.0.0-alpha.2
Я что-то пропустил?
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/708 ... largumente