次のように HttpClient を使用して実用的にサイトにログインしようとしています:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
public class HttpClientWebAPITest {
public static void main(String[] args) {
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://localhost:8080/login.jsp");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("j_username", "mayank"));
nameValuePairs.add(new BasicNameValuePair("j_password", "hexgen"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null) {
System.out.println(line);
if (line.startsWith("Auth=")) {
String key = line.substring(5);
System.out.println("key : hexgen : "+key);
// Do something with the key
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
これはログインページを印刷するだけですが、システムにログインしてJSESSIONIDを設定したい
認証が正しく行われたかどうかを確認したい。
これを解決するのを手伝ってください。
宜しくお願いします アント