Я пытаюсь обработать перенаправление (302) в Java-коде ... И код, который у меня есть, использует org.apache.commons.httpclient.HttpClient
, который не объявляет setRedirectStrategy()
, поэтому мне нужно написать свою собственную реализацию переадресации:Обработка перенаправления 302 в Java
private void loadHttp302Request(HttpMethod method, HttpClient client,
int status, String urlString) throws HttpException, IOException {
if (status!=302)
return;
String[] url = urlString.split("/");
logger.debug("Method -> loadHttp302Request -> Location : " + method.getResponseHeader("Location")
.getValue());
logger.debug("Method -> loadHttp302Request -> Cookies : " + method.getResponseHeader("Set-Cookie")
.getValue());
logger.debug("Method -> loadHttp302Request -> Referrer : " + url[0]+"//"+url[2]);
HttpMethod theMethod = new GetMethod(urlString+method.getResponseHeader("Location")
.getValue());
theMethod.setRequestHeader("Cookie", method.getResponseHeader("Set-Cookie")
.getValue());
theMethod.setRequestHeader("Referrer",url[0]+"//"+url[2]);
int _status = client.executeMethod(theMethod);
logger.debug("Method -> loadHttp302Request -> Status : " + _status);
method = theMethod;
}
После этого выполняется, код состояния равен 200, так что кажется, что все работает, но тело ответа и responsestream оба нуль. Я смог обнюхать TCP-поток с помощью wirehark и, насколько это касается Wireshark, я возвращаю весь тело ответа из моего кода перенаправления ... Поэтому я не уверен, что я делаю неправильно или что искать дальше ... в идеале было бы хорошо, если бы я мог бы использовать setRedirectStrategy()
, а потому, что это код клиента: р я застрял с помощью org.apache.commons.httpclient.HttpClient
...
Я отлажена вниз executeMethod()
и обнаружили, что при чтении ответа от входной поток, кажется, ничего не получает, хотя wirehark, безусловно, показывает, что я получил полный орган ответа.
Любые идеи будут оценены :)
В 'getMethod'' urlString' следует заменить 'url [0] +" // "+ url [2]' не так ли? –
Нет ... Тогда у вас будет путь = http://www.abc.com/www.abc.com – Ahmed