HttpURLConnection responseCode 405 метод не допускается ошибка
Мы пытаемся отправить запрос на интеграцию веб-API от внешнего провайдера. Они используют авторизацию IP, и наш IP определен в их системе интеграции.
У нас ошибка 405 при создании HttpUrlConnection, и мы не можем отправить запрос на этот URL. Когда мы пытаемся создать HttpUrlConnection с основным доменом " http://api.relateddigital.com/" с ошибкой 403.
Фирма провайдера говорит: "У нас нет никаких ограничений для ваших IP-адресов. Ошибка связана с вашей сетью". Как мы можем решить это?
Наш Кодекс:
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
final URL url=new URL("http://api.relateddigital.com/resta/api/auth/login");
final HttpURLConnection connection=(HttpURLConnection)url.openConnection();
System.out.println("connection.getResponseCode() :: " + connection.getResponseCode());
//the output is 405
connection.setRequestMethod("POST");
//Exception in thread "main" java.lang.IllegalStateException: connect in progress at sun.net.www.protocol.http.HttpURLConnection.setRequestMethod(Unknown Source)
}
}
1 ответ
Решение
Я решил это благодаря @Chor Wai Chun.
Я упустил из виду, что getResponseCode() должен быть после параметров соединения.
Спасибо всем!
Сработало так:
final URL url = new URL("http://api.relateddigital.com/resta/api/Datawarehouse/InsertUpdateRowInDwTable");
final HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type", "application/json");
...
...
...
if ((connection.getResponseCode() < 200) || (connection.getResponseCode() >= 300))
{
final BufferedReader in = new BufferedReader(new InputStreamReader(connection.getErrorStream()));
final StringBuilder builder = new StringBuilder();
String inputLine;
while ((inputLine = in.readLine()) != null)
{
builder.append(inputLine);
}
System.out.println("Error builder::" + builder);
in.close();
return;
}