В почтальоне API работает нормально, но в java это не так - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь получить объект JSON из API при использовании URL-адреса API. Это прекрасно работает, когда я тестирую его в Postman, но когда я пробую его в своем приложении Spring, он возвращает 405 с сообщением (метод не разрешен для запрошенного URL)

Мой Java Код: -

URL tokenURL = new URL("https://something.in/v1/token");
HttpURLConnection tokenConnection = (HttpURLConnection) tokenURL.openConnection();
tokenConnection.setRequestMethod("GET");
tokenConnection.setConnectTimeout(Integer.parseInt(env.getProperty
    ("common.webServiceCall.maxTimeOut")));
tokenConnection.setReadTimeout(Integer.parseInt(env.getProperty
    ("common.webServiceCall.maxTimeOut")));
tokenConnection.setRequestProperty("Content-Type", "application/json");
tokenConnection.setRequestProperty("Accept", "application/json");
tokenConnection.setRequestProperty("X-IBM-Client-Id", "45878d21-469c-b68e-34b1suds34c");
tokenConnection.setRequestProperty("X-IBM-Client-Secret", "ytGThJH4sW7hY2skhJHG65uC7xH7v645fsdfkjgFGHDFgcvhg");
tokenConnection.setDoInput(true);
tokenConnection.setDoOutput(true);  
OutputStream tokenStream = null;
try {
    tokenStream = tokenConnection.getOutputStream();
} catch (RemoteException e) {
    e.printStackTrace();
}
try {
    for(int i = 0; i < 3; i++) {
        tokenConnection.connect();
            if (tokenConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
                break;
            }
    }
} catch (Exception e) {
    e.printStackTrace();
}
if (tokenConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader((tokenConnection.getInputStream())));
    StringBuilder serviceResponse = new StringBuilder();
    String serviceResponseLine;
    while ((serviceResponseLine = bufferedReader.readLine()) != null) {
        serviceResponse.append(serviceResponseLine);
    }
    tokenStream.close();
    tokenConnection.disconnect();
    System.out.println(serviceResponse);
} else {
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader((tokenConnection.getErrorStream())));
    StringBuilder serviceResponse = new StringBuilder();
    String serviceResponseLine;
    while ((serviceResponseLine = bufferedReader.readLine()) != null) {
        serviceResponse.append(serviceResponseLine);
    }
    tokenStream.close();
    tokenConnection.disconnect();
    System.out.println(serviceResponse);
}

1 Ответ

1 голос
/ 10 февраля 2020

У меня есть одно предложение, почтальон может генерировать исходный код запроса для разных языков программирования, например, java и JavaScript, и инструмент командной строки, такой как cURL. Я предлагаю использовать cURL, чтобы получить более подробные сведения, которые могут помочь вам в настройке соединения.

enter image description here

...