Обновление продукта с Shoppy API - PullRequest
1 голос
/ 23 марта 2020

Я использую API-интерфейс shoppy, и мне нужно обновить продукт с помощью API, я пытаюсь обновить список аккаунтов, я могу обновить заголовок / des c, Я не могу обновить список учетных записей, он говорит о здесь Мне нужно отправить массив, и я сделал это, но сервер shoppy умирает, это мой код, я использую unirest для отправки запроса.

Map<String, String> accs = new HashMap<>();
accs.put("username", "password");
String response =  Unirest.post("https://shoppy.gg/api/v1/products/xxx").queryString("accounts", accs).headers(headers).asString().getBody();

печать response возвращает страницу с ошибкой, но когда я просто обновляю заголовок, он говорит, что мое обновление прошло успешно, поэтому я не уверен, что я делаю здесь неправильно.

Это печать с response

<!DOCTYPE html>
<html>
<head>
<title>Be right back.</title>
<link href="https://fonts.googleapis.com/css?family=Lato:100" rel="stylesheet" type="text/css">
<style>
        html, body {
            height: 100%;
        }

        body {
            margin: 0;
            padding: 0;
            width: 100%;
            color: #B0BEC5;
            display: table;
            font-weight: 100;
            font-family: 'Lato', sans-serif;
        }

        .container {
            text-align: center;
            display: table-cell;
            vertical-align: middle;
        }

        .content {
            text-align: center;
            display: inline-block;
        }

        .title {
            font-size: 72px;
            margin-bottom: 40px;
            font-weight: 200;
        }
    </style>
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Be right back.</div>
</div>
</div>
</body>
</html>

1 Ответ

0 голосов
/ 23 марта 2020

Я считаю, что ошибка в том, что вы передаете accs методу .queryString().

Посмотрите документацию Unirest о том, как вы передаете массивы и сопоставляются с queryString() из http://kong.github.io/unirest-java/#requests:

Чтобы передать массив или карту:

    Unirest.get("http://httpbin.org")
    .queryString("fruit", Arrays.asList("apple", "orange"))
    .queryString(ImmutableMap.of("droid", "R2D2", "beatle", "Ringo"))
    .asString();

    // Results in "http://httpbin.org?fruit=apple&fruit=orange&droid=R2D2&beatle=Ringo"

Исходя из приведенного выше примера, похоже, что вы передаете в accs отобразить, как если бы это был массив, когда на самом деле это Map. Если вы хотите передать массив, попробуйте это:

    String response =  Unirest.post("https://shoppy.gg/api/v1/products/xxx")
        .queryString("accounts", Arrays.asList(accs))
        .headers(headers)
        .asString()
        .getBody();
...