Как исправить 400 Плохой запрос в HttpClient при попытке создать вложение? - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь создать вложение, используя HttpClient multipart / form-data, но постоянно получаю 400: Неверный код состояния запроса в качестве вывода. Что я делаю не так.Форма сообщения Я попытался сделать запрос следующим образом:

         HttpPost httppost = new HttpPost(URL);
         httppost.addHeader("Content-Type", "multipart/form-data");
         HttpEntity entity = MultipartEntityBuilder.create()
        .addTextBody(name,"{ \"fileName\": \"abc.txt\", 
        \"description\": {  \"raw\": \"Test\"  }}" , 
        ContentType.create("application/json"))
        .addTextBody("file",fileBody_in_bytes,
        ContentType.create("text/plain"))
        .build();
        System.out.print(entity);
        httppost.setEntity(entity);
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity result = response.getEntity();
        httppost.setEntity(result);




But got this error:

{"_type":"Error","errorIdentifier":"urn:openproject-org:api:v3:errors:InvalidRequestBody","message":"The request body did not contain the expected multipart parts."}

Формат, указанный в API, выглядит следующим образом:

**Header**

Content-Type: multipart/form-data


**Body**

--boundary-delimiter
Content-Disposition: form-data; name="metadata"
Content-Type: application/json; charset=UTF-8

{
  "fileName": "cute-cat.png",
  "description": {
    "raw": "A cute kitty, cuddling with its friends!"
  }
}

--boundary-delimiter
Content-Disposition: form-data; name="file"; filename="attachment"
Content-Type: image/png

PNG file data
--boundary-delimiter--

ДокументацияAPI

Кто-нибудь может увидеть мою ошибку?

Спасибо !!

...