2015-01-19 2 views
1

URL-адрес, который я даю, перенаправляется. Когда я нажимаю URL с некоторым браузером, он перенаправляется на другой сайт. Когда я тестирую его у некоторого клиента для отдыха, я получаю http-код 302, который является правильным для перенаправления. Но я пробую то же самое с ниже кодом, он возвращает 200. Может кто-нибудь помочь мне? Спасибо заранее. обновленный url.HTTP-код перенаправления URL-адреса

try { 
    URL url = new URL("https://securestore.hbo.com/cart.php?f=pplogin&ppx=1&method=checkout"); 
    HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
    connection.connect(); 
    int code = connection.getResponseCode(); 
    System.out.println(connection.getResponseMessage()); 
    System.out.println("code is" + code); 
    connection.disconnect(); 
    } 
    catch (MalformedURLException e) { 
      e.printStacTrace(); 
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 

ответ

0

Если url1 перенаправляется на url2, тогда вы получите статус 302. Однако, если вы кодируете прямое обращение к url2, вы обязаны получить 200.

+0

обновил URL, url1 redirecs к URL2 – Muthu

0

Пробуйте следующий код.

import javax.microedition.io.Connector; 
import javax.microedition.io.HttpConnection; 
..... 
connection = (HttpConnection)Connector.open(url); 
responseCode = connection.getResponseCode(); 
0

HttpURLConnection будет следовать по переадресации по умолчанию.

Попробуйте установить следующее, если вы не хотите следовать редиректов:

HttpURLConnection.setFollowRedirects(false); 

Например, по отношению к коду:

try { 
    URL url = new URL(""); 
    HttpURLConnection.setFollowRedirects(false); 
    HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
    connection.connect(); 
    int code = connection.getResponseCode(); 
    System.out.println(connection.getResponseMessage()); 
    System.out.println("code is" + code); 
    connection.disconnect(); 
} 
catch (MalformedURLException e) { 
     e.printStacTrace(); 
} 
catch (IOException e) { 
    e.printStackTrace(); 

}

+0

Уже попробовал HttpURLConnection.setFollowRedirects (ложь) ;, но это был беспомощен :( – Muthu

+0

Единственная вещь, которую я могу предложить, чтобы убедиться, что HttpURLConnection.setFollowRedirects (ложные); это перед созданием объекта соединения. В противном случае попробуйте connection.setInstanceFollowRedirects (false) –

0

Попробуйте добавить ответ с код 302, который вы хотите. Что-то вроде connection.setStatus(statusCode) Возможно, я ошибаюсь.

Смежные вопросы