Android OkHTTP Multipart - тело пустое на стороне сервера - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь отправить многокомпонентные данные (image & JSON) на мой сервер, однако когда я пытаюсь использовать okHttp составное тело, тело запроса на сервере всегда пусто, где в этом случае я бы ожидал {fieldname: "some field name" }

Супер застрял на этом, поэтому любая помощь будет принята с благодарностью.Я могу создать нормальное тело с RequestBody, и оно работает нормально, и, похоже, многочастное тело с одним изображением, просто двойное JSON и изображение в многочастном, не отправляет через тело json.

ПРИМЕЧАНИЕ:Я пробовал это без включения изображения / файла в качестве части данных формы, чтобы увидеть, будет ли поле field_name отображаться на стороне сервера тела запроса, но это тоже не сработало.

    RequestBody multiPartForm = new MultipartBody.Builder()
            .setType(MultipartBody.FORM)
            .addFormDataPart("field_name", "some field name")
            .addFormDataPart("image", "somefile.jpg", RequestBody.create(MEDIA_TYPE_JPG, new File(getPath(uri))))
            .build();


    String apiRoute = apiURL + '/' + route;
    Request.Builder reqBuilder = new Request.Builder();

    reqBuilder.header("x-access-token", APIToken);

    Request.Builder builder = reqBuilder.url(apiRoute);
    builder.post(multiPartForm);

    return client.newCall(builder.build());

1 Ответ

0 голосов
/ 29 декабря 2018

Удалите setType(MultipartBody.FORM) и посмотрите, работает ли это.

...