Запрос отправлен с версией http/0.9

Я использую Apache Commons HttpClient v3.1. Все мои запросы имеют правильную (по умолчанию) версию HTTP в строке запроса, т.е. HTTP/1.1, за исключением 1 запроса.

Следующий почтовый запрос получает строку запроса в виде HTTP/0.9:

server : port/cas/v1/tickets/TGT-1-sUqenNbqUzvkGSWW25lcbaJc0OEcJ6wg5DOj3XDMSwoIBf6s7i-cas-1
Body: service=*

Я отлаживал через код клиента http и увидел, что строка запроса установлена ​​на HTTP/1.1, но на сервере я вижу запрос, поступающий как HTTP/0.9.

Я пытался установить версию HTTP явно, используя HttpMethodParams но это не помогает. У кого-нибудь есть идеи, что может быть не так?

    HttpClient client = new HttpClient();
    HostConfiguration hc = client.getHostConfiguration();
    hc.setHost(new URI(url, false));

    PostMethod method = new PostMethod();
    method.setURI(new URI(url, false));

    method.getParams().setUriCharset("UTF-8");
    method.getParams().setHttpElementCharset("UTF-8");
    method.getParams().setContentCharset("UTF-8");
    method.getParams().setVersion(HttpVersion.HTTP_1_1);
    method.addParameter("service", URLEncoder.encode(service, "UTF-8"));
    method.setPath(contextPath + "/tickets/" + tgt);

    String  respBody = null;
    int statusCode = client.executeMethod(method);
    respBody = method.getResponseBodyAsString();

1 ответ

Спасибо Йоахим Зауэр. Я смог выяснить проблему.

Я использовал Webscarab в качестве веб-прокси, и он выдал следующее сообщение "Получил заголовок продолжения, но у него не было предыдущей строки заголовка". Посмотрел его в Интернете и обнаружил, что проблема в многострочном запросе. Я явно устанавливал версию HTTP на 1.1, однако в URL был завершающий символ '\ r \ n', из-за которого строка запроса выглядела как Http / 0.9.

Разница между Http / 0.9 и Http / 1.0 или другими более высокими протоколами заключается в том, что 0.9 имеет простую строку запроса "МЕТОД URL". Более поздние версии также включают версию Http в строку запроса "МЕТОД URL HTTPVERSION".

Надеюсь, это спасет кого-то день!

Другие вопросы по тегам