Запрос на пересылку для multipart / form-data с использованием Java (клонирование клиента ruby) - PullRequest
0 голосов
/ 18 января 2019

это может быть очень глупый вопрос, но я изо всех сил пытаюсь найти ответ.Мне нужно загрузить тестовые скриншоты в инструмент сравнения изображений с помощью пост-запроса, клиент для этого был написан на Ruby, и мне нужно создать свой собственный Java-клиент, в настоящее время зависший на 400 (неправильный запрос). К сожалению, у меня нет журналов с сервера, так какэто не выставлено, однако клиент ruby ​​работает отлично.Подскажите, пожалуйста, как должно выглядеть тело запроса?(это мой первый опыт работы с multipart)

код Ruby

  def submit_test(options = {})
  source_url =  options[:source_url] || ''
  fuzz_level =  options[:fuzz_level] || ''
  highlight_colour = options[:highlight_colour] || ''
  request = RestClient::Request.execute(
    method: :post,
    url: "#{@url_base}/tests",
    timeout: 120,
    multipart: true,
    payload: {
      test: {
        run_id: @run_id,
        name: options[:name],
        browser: options[:browser],
        size: options[:size],
        screenshot: options[:screenshot],
        source_url: source_url,
        fuzz_level: fuzz_level,
        highlight_colour: highlight_colour,
        crop_area: options[:crop_area]
      }
    }
  )

мой код Java

@Test
public void spectre() throws MalformedURLException, JSONException, IOException {
    BufferedImage image = ImageIO.read(new File("C:\\Users\\user\\Desktop\\testfile.JPG"));
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    ImageIO.write(image, "png", outputStream);
    final byte[] bytes = outputStream.toByteArray();
    JSONObject test = new JSONObject();
    given()
            .multipart("run_id", 1)
            .multipart("name", "Landing Page")
            .multipart("browser", "firefox")
            .multipart("size", 1024)
            .multiPart("screenshot", "file1.png", bytes)
            .post("http://10.0.33.179:3333/tests");
    System.out.println(then().extract().statusCode());
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...