У меня есть следующий пример запроса, который возвращает 201, как и ожидалось. Заголовки:
И само тело основного запроса выглядит так: Проблема в том, что этот запросимеет тип содержимого multipart/from-data
. Я никогда не работал с этим. Итак, основной запрос на самом деле содержит два меньших, которые имеют свои собственные дублирующие заголовки. Я понятия не имею, как построить это с заводной. Также мне нужно передать заголовки Authorization
и Content-Type
в основной запрос. Что я должен делать? Есть ли способ вручную сформировать тело со всеми заголовками? Если да, то как мне построить его, используя RESTClient
?
в Groovy. Я бы хотел сделать что-то вроде:
def http = new HTTPBuilder("URL");
def token = "mytoken";
http.setHeader("Authorization", auth);
http.setContentType("multipart/form-data; boundary=W3NByNRZZYy4ALu6xeZzvWXU3NVmYUxoRB");
http.request(Method.POST) {
MultipartEntity jsonEntity = new MultipartEntity();
jsonEntity.addPart("", new JSONObject("{"values":{"Incident Number":"INC000036078321","Work Log Type":"General Information","Description":"test","z2AF Work Log01":"book.xlsx"}}")) //nevermind escaping
jsonEntity.setHeader("Content-Disposition", "form-data");
jsonEntity.setHeader("name", "entry");
jsonEntity.setHeader("Content-Type", "form-data");
jsonEntity.setHeader("Content-Disposition", "application/json");
jsonEntity.setHeader("charset", "UTF-8");
jsonEntity.setHeader("Content-Transfer-Encoding", "8bit");
MultipartEntity base64Entity = new MultipartEntity();
base64Entity.addPart("", "loooooooooooooooooonng base64");
base64Entity.setHeader("Content-Disposition", "form-data");
base64Entity.setHeader("name", "attach-z2AF Work Log01");
base64Entity.setHeader("filename", "book.xlsx");
base64Entity.setHeader("Content-Type", "application/octet-stream");
base64Entity.setHeader("Content-Transfer-Encoding", "base64");
http.addMultipartEntity(jsonEntity);
http.addMultipartEntity(base64Entity);
response.success = { resp, json ->
result = json;
}
}
Но, к сожалению, я не могу этого сделать, потому что нет setHeader
для MultipartEntity
и addMultipartEntity
для HTTPBuilder
. Как я могу это сделать?
Спасибо заранее.