※ ChatGPTを利用し、要約された質問です(原文:cookie使用サイトへのJAVAによるアクセス)
cookie使用サイトへのJAVAによるアクセス
このQ&Aのポイント
JAVAであるサイトの情報を集めるようなソフトを作りたいのですが、そのサイトが年齢認証をcookieで行っているみたいで接続しても403エラーが出てしまいます。
cookieを手動で設定していますがこれはあってるはずです。afg = 0; domain = "www.toranoana.jp" ;path = "/";
どのようにすればちゃんと接続できるようになるでしょうか?よろしくおねがいします。以下にソースをさらします。なお接続先は18歳未満禁止の年齢制限がかかっているので注意してください。
JAVAであるサイトの情報を集めるようなソフトを作りたいのですが、
そのサイトが年齢認証をcookieで行っているみたいで接続しても403エラーが出てしまいます。
cookieを手動で設定していますがこれはあってるはずです。
afg = 0; domain = "www.toranoana.jp" ;path = "/";
どのようにすればちゃんと接続できるようになるでしょうか?よろしくおねがいします。
以下にソースをさらします。
なお接続先は18歳未満禁止の年齢制限がかかっているので注意してください。
import java.net.*;
import java.io.*;
import java.util.*;
public class HttpClientHttpURLConnection {
public static void main(String[] args) throws MalformedURLException, ProtocolException, IOException, URISyntaxException{
URL url = new URL("http://www.toranoana.jp/mailorder/cot/pagekit/0000/00/03/000000030983/index.html");
URI uri = new URI("www.toranoana.jp/");
HttpCookie cookie = new HttpCookie("afg", "0");
cookie.setDomain("www.toranoana.jp");
cookie.setPath("/");
HttpURLConnection urlconn = (HttpURLConnection)url.openConnection();
urlconn.setRequestMethod("GET");
urlconn.setInstanceFollowRedirects(false);
urlconn.setRequestProperty("Accept-Language", "ja;q=0.7,en;q=0.3");
CookieManager manager = new CookieManager();
manager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
manager.getCookieStore().add(uri,cookie);
CookieHandler.setDefault(manager);
CookieStore store = manager.getCookieStore();
List<HttpCookie> cookies = store.getCookies();
for (int i = 0; i < cookies.size(); i++) {
HttpCookie cookie1 = cookies.get(i);
System.out.println("Cookie[" + i + "]: " + cookie1);
}
urlconn.connect();
Map headers = urlconn.getHeaderFields();
Iterator it = headers.keySet().iterator();
System.out.println("レスポンスヘッダ:");
while (it.hasNext()){
String key = (String)it.next();
System.out.println(" " + key + ": " + headers.get(key));
}
System.out.println("レスポンスコード[" + urlconn.getResponseCode() + "]" + "レスポンスメッセージ[" + urlconn.getResponseMessage() + "]");
System.out.println("\n---- ボディ ----");
BufferedReader reader = new BufferedReader(new InputStreamReader(urlconn.getInputStream()));
while(true){
String line = reader.readLine();
if(line == null){
break;
}
System.out.println(line);
}
reader.close();
urlconn.disconnect();
}
}
お礼
ありがとうございます、無事できました! cookiemanagerとはいったいなんだったのでしょうか・・・