Как мне сформировать следующий запрос POST multipart / form-data? - PullRequest
0 голосов
/ 03 октября 2019

У меня есть следующий 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);

} 

Однако, похоже, он не работает. У меня есть несколько вопросов:

  1. Как правильно передать json и base64 в multiPartContent?
  2. Есть ли способ установить заголовки multiPartContent такэто будет sastifsy шаблон?
  3. Как я могу увидеть тело запроса, который собирается быть отправлен? (со всеми заголовками).
...