У меня есть следующий POST-приемлемый шаблон запроса
Запрос
Однако я столкнулся с несколькими проблемами при его реализации с помощью groovy.
Мой код ниже:
import org.apache.http.entity.mime.MultipartEntity
import org.apache.http.entity.mime.HttpMultipartMode
import org.apache.http.entity.mime.content.InputStreamBody
import org.apache.http.entity.mime.content.StringBody
import groovyx.net.http.*
import org.apache.http.entity.ContentType;
def baseURL = 'someBaseURL';
def URLToGo = baseURL + '/api/postJsonAndImage';
def httpRequest = new HTTPBuilder(URLToGo);
def authToken = 'AR-JWT ' + 'MYJWTTOKEN'
def headers = ['Authorization' : authToken];
httpRequest.setHeaders(headers);
httpRequest.setContentType('multipart/form-data; boundary=W3NByNRZZYy4ALu6xeZzvWXU3NVmYUxoRB');
httpRequest.request(Method.POST)
{
req ->
MultipartEntity multiPartContent = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
multiPartContent.addPart('JSON', new StringBody('{"values":{"Incident Number":"INC000036078321","Work Log Type":"General Information","Description":"test","z2AF Work Log01":"book.xlsx"}}', ContentType.TEXT_PLAIN));
multiPartContent.addPart('base64', new StringBody('UEsDBBQABgAIAAAAIQDk5p4srgEAALIIAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAACAAAAAAAAAAAAAAA...')); // I have trimmed base64 for simplicity
req.setEntity(multiPartContent);
}
Однако, похоже, он не работает. У меня есть несколько вопросов:
- Как правильно передать json и base64 в
multiPartContent
? - Есть ли способ установить заголовки
multiPartContent
такэто будет sastifsy шаблон? - Как я могу увидеть тело запроса, который собирается быть отправлен? (со всеми заголовками).