Проблема с GET-запросом с использованием Java URL-объекта - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь получить файл Json по этой ссылке: https://api.imgflip.com/get_memes

Когда я добавляю ссылку на объект URL в Java и пытаюсь подключиться с использованием объекта HttpURLConnection, я продолжаю получать ошибку 403,Может ли кто-нибудь помочь мне с возможным разрешением, которое я могу пропустить?

Код:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class Main {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        String url = "https://api.imgflip.com/get_memes";

        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // optional default is GET
        con.setRequestMethod("GET");

        int responseCode = con.getResponseCode();
        System.out.println("\nSending 'GET' request to URL : " + url);
        System.out.println("Response Code : " + responseCode);

        BufferedReader in = new BufferedReader(
                new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        //print result
        System.out.println(response.toString());
    }

}

Ошибка:

Sending 'GET' request to URL : https://api.imgflip.com/get_memesException in thread "main" 
Response Code : 403
java.io.IOException: Server returned HTTP response code: 403 for URL: https://api.imgflip.com/get_memes
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at Main.main(Main.java:25)
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://api.imgflip.com/get_memes
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at java.net.HttpURLConnection.getResponseCode(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
    at Main.main(Main.java:20)

1 Ответ

0 голосов
/ 18 декабря 2018

Их официальный сайт (https://api.imgflip.com/) говорит, что у них есть ограничение скорости на количество звонков. Возможно, вы превышаете количество звонков.

...