Apache CommonsHttpClientv3.1を使用しています。私のすべてのリクエストは、1つのリクエストを除いてリクエストラインに正しい(デフォルトの)HTTPバージョン、つまりHTTP/1.1を持っています。
次のPostリクエストは、リクエストラインを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();