私はJavaコードでリダイレクト(302)を処理するようにtryigしていますが、今では自分のコードでやっています。私は他の問題に遭遇しました。そこではログイン後、私はログアウトしたリンクをクリックします。だからwiresharkを使って自分のTCPストリームを調べたところ、HeaderRequests
が見つからないことがわかりました。次のように私のコードの実装後、HTTPヘッダーは次のようにHttpMethodの内容を別のHttpMethodにコピー
GET /index.php/ HTTP/1.1
Host: 10.28.161.31
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111109 CentOS/3.6-3.el5.centos Firefox/3.6.24
Cookie: PHPSESSID=d488eea5e85afc8ec526c1a749e7ab20; path=/
Referrer: http://10.28.161.31
Cookie: $Version=0; PHPSESSID=d488eea5e85afc8ec526c1a749e7ab20; $Path=/ ???
と元のHTTPヘッダは以下のとおりです。
GET/HTTP/1.1
Host: 10.28.161.31
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111109 CentOS/3.6-3.el5.centos Firefox/3.6.24
Referer: http://10.28.161.31/index.php
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cookie: PHPSESSID=978ee1e3b3696743c5c8f507a2ec7212
は私の観察によると、私は適切にヘッダーの内容をコピーしていなかったと理由ですそれはすぐにログアウトしています。だから私の質問は、HttpMethod
の完全なコンテンツを別のHttpMethod
にコピーするにはどうすればいいですか?いずれかがコードスニペットを提供できる場合、または例/チュートリアルは素晴らしいでしょうか、または私が間違っているところで誰かが私に頭を上げることができれば、それは相当なことです。
私の実装では、右ここにある:あなたが戦略を設定した場合
private HttpMethod loadHttp302Request(HttpMethod method, HttpClient client,
int status, String urlString) throws HttpException, IOException {
if (status!=302)
return null;
String[] url = urlString.split("/");
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);
return theMethod;
}
そして、正確にはどのように翻訳を行いますか?HttpClientとDefaultHttpClient ??? – Ahmed
私のために働いていない.. – Ahmed