2011-08-01 7 views
1

こんにちは、私は1つの接続に2つのGETリクエストを作成しようとしています。すなわち単一のサイトへの複数のGETリクエスト(標準)(java)

HttpGet get1 = new HttpGet("http://www.google.com/search?q=HelloWorld"); 
HttpGet get2 = new HttpGet("http://www.google.com/search?q=SecondSearch"); 

HttpResponse response = null; 

response = client.execute(get1); 
response = client.execute(get2); 

私は2回目の実行から体を取得したいと思います。明らかにこれは失敗します。なぜなら、最初に接続を解除する必要があるからです。正確なセッションを維持する必要があります。たとえば、最初のステップがログインするサイトに移動する場合は、同じCookieを持つ後続のページに移動する必要があります。

これはおそらく私が間違っていることは信じられないほど単純です!

答えて

2

あなたは上記のコードではCookieStore

CookieStore cookieStore = new BasicCookieStore(); 

DefaultHttpClient client1 = new DefaultHttpClient(); 
client1.setCookieStore(cookieStore); 
HttpGet httpGet1 = new HttpGet("..."); 
HttpResponse response1 = client1.execute(httpGet1); 

DefaultHttpClient client2 = new DefaultHttpClient(); 
client2.setCookieStore(cookieStore); 
HttpGet httpGet2 = new HttpGet("..."); 
HttpResponse response2 = client2.execute(httpGet2); 

を使用する必要があり、両方CLIENT2はCLIENT1要求からクッキーを再利用します。

+0

素晴らしいです。ありがとうございました! Iはまた、実際に私ができることに気づいた: 1)を取得 2を実行する)最初の要求 3からbufferedstreamを得る)切断 4をトリガbufferedstreamを閉じる)を取得 5秒を実行する)情報を取得しますそれに応じて。 のように、クッキー管理はもっとクリーンな方法です。ありがとう –

+0

実際には、私はApacheから最新のhttpclientをダウンロードしました。何らかの理由で HttpClient.SetCookieStoreが含まれていないようです。 –

+0

HttpClientインターフェイスにはありません.HttpHttpClientのメンバーです(DefaultHttpClientの親です) 。 – pap

関連する問題