Любая идея, почему этот запрос работает в curl, а не в Java? - PullRequest
1 голос
/ 19 сентября 2019

Я пытаюсь использовать wicommerce APi с Java, но он возвращает 403. Когда я пытаюсь выполнить тот же запрос по curl, он работает нормально.

Уже пытался добавить / удалить свойства запроса

Класс Java:

public static void main (String [] args){
    String CONSUMER_KEY="consumer_key";
    String CONSUMER_SECRET="consumer_secret";
    String authString = CONSUMER_KEY + ":" + CONSUMER_SECRET;
    byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
    String authStringEnc = new String(authEncBytes);
    HttpURLConnection conn;
    try {
        String url ="https://example.com/wp-json/wc/v3/products";
        URL url1 = new URL(url);
        conn = (HttpURLConnection) url1.openConnection();
        conn.setRequestMethod("GET");
        conn.setRequestProperty("Authorization","Basic "+authStringEnc);
        conn.setRequestProperty("header","content-type:application/json");
        conn.setRequestProperty("Accept", "*/*");
        conn.setDoOutput(true);
        conn.setDoInput(true);
        conn.setInstanceFollowRedirects(false);
        InputStream is = conn.getInputStream();
        byte[] bytes = IOUtils.toByteArray(is);
        String response= GzipUtil.unzip(bytes);
    }
    catch (Exception e){

    }

}

Запрос curl:

curl https://example.com/wp-json/wc/v3/products \ -u {consumer_key}: {consumer_secret}

Любая идея, как решить эту проблему?Спасибо

1 Ответ

1 голос
/ 19 сентября 2019

Некоторые серверы ожидают, что заголовок User-Agent будет присутствовать в запросе, чтобы считать его действительным запросом.Так вы можете попытаться добавить это к вашему запросу?

conn.setRequestProperty("User-Agent", "My-User-Agent");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...