2016-10-16 40 views
1

Apache httpclient for Javaに問題があります。私は、ログインフォームからすべてのフィールドを抽出し、ユーザー名とパスワードを入力し、POST要求を行うことによってアカウントにログインする、Webサイト用のログインボットを作成しています。私はjavaが提供するクラスを使って試しましたが、毎回ログインページに戻ってきました。 これはApacheクライアントで動作するようですが、まだ動作しているかどうかを確認するために、すべてのCookie処理コードを削除しようとしました。私はもはやリストにクッキーを保存せず、リクエストにクッキーを追加しませんが、まだ正しくログインしているようです。どのようにすることができますか?私はcookiestoreを使用せず、クッキーがどこから来ているのかわからないので、明らかにバックグラウンドのどこかに保存しなければなりません。新しいセッションを開始するには、それらをクリアする必要があります。 私はこのApache HTTPクライアントのクッキー - Java

CloseableHttpClient client = HttpClients.createDefault(); 

のようなクライアントを作成し、この

HttpPost post = new HttpPost(url+"/login"); 
HttpResponse response = client.execute(post); 

答えて

0

私の英語が悪いように要求を行います。 クッキーはCookieStoreから実際に来ます。しかし、クッキーは実行(HttpUriRequest要求)で操作されません。 Cookieを追加または削除する場合は、execute(HttpUriRequest request、HttpContext context)を使用できます。 例:

import org.apache.http.HttpResponse; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.client.protocol.HttpClientContext; 
import org.apache.http.impl.client.CloseableHttpClient; 
import org.apache.http.impl.client.HttpClients; 

import java.io.IOException; 

/** 
* Created by y.wang on 11/16/16. 
*/ 
public class HttpClientTest { 
    public static void main(String[] args){ 
     CloseableHttpClient client = HttpClients.createDefault(); 
     HttpClientContext httpClientContext = new HttpClientContext(); 
     String url = ""; 
     HttpPost post = new HttpPost(url + "/login"); 
     try { 
      HttpResponse response = client.execute(post, httpClientContext); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     httpClientContext.getCookieStore().clear(); 
    } 
} 
関連する問題