Используйте REST-клиент для вызова multipart / form-data. - PullRequest
10 голосов
/ 20 апреля 2011

У меня есть веб-сервис RESTeasy на основе REST (см. Ниже).Я пытаюсь использовать клиент Google REST для выполнения запроса на тестирование моего сервиса, но я не уверен, как настроить запрос.

Я не уверен, как отправить byte[] как параметр (filedata).
Есть идеи, как это проверить?

Я получаю следующее исключение:

java.io.IOException: Невозможно получить границу для нескольких частей

с

request:
-content-type=multipart/form-data
-form params:
test=testvalue

Метод отдыха:

@POST
@Path("/upload")
@Consumes("multipart/form-data")
public Response create(@MultipartForm FileUploadForm form) {
   System.out.println("form=" + form.getTest());
   return null;
}

FileUploadForm Pojo:

import javax.ws.rs.FormParam;
import org.jboss.resteasy.annotations.providers.multipart.PartType;

public class FileUploadForm {
    private byte[] filedata;
    private String test;

    public FileUploadForm() {}

    public byte[] getFileData() {
        return filedata;
    }

    @FormParam("filedata")
    @PartType("application/octet-stream")
    public void setFileData(final byte[] filedata) {
        this.filedata = filedata;
    }

    public String getTest() {
        return test;
    }

    @FormParam("test")
    @PartType("application/json")
    public void setTest(String test) {
        this.test = test;
    }   
}

1 Ответ

11 голосов
/ 03 марта 2014

Вы должны добавить этот заголовок к вашему запросу:

Accept-Encoding:multipart/form-data

обычно вы используете такой тип контента:

Content-Type: image/png

Вы можете проверить это с клиентом REST почтальона

Я приложил изображение о том, как заполнять форму.

postman multipart/form-data

...