分析のためにRobloxの通貨交換から統計データを収集しようとしています。したがって、私はキャッシュされた結果の代わりに最新のデータが必要です。しかし、私が何をしても結果はまだキャッシュされているようです。最も直観的なオプションsetUseCaches()
は効果がなく、手動でヘッダをCache-Control: no-cache
として設定することはどちらかと思われません。私はFiddler2を使用してCacheヘッダーを検査し、その値がCache-Control: max-age=0
であることを確認しましたが、プログラムの動作も変更されていませんでした。ここでは、コードの関連部分は以下のとおりです。Java - HttpUrlConnectionがキャッシュレスポンスを毎回返す
URL:
GETリクエスト:
URLConnection socket = new URL(URL).openConnection();
socket.setUseCaches(false);
socket.setDefaultUseCaches(false);
HttpURLConnection conn = (HttpURLConnection)socket;
conn.setUseCaches(false);
conn.setDefaultUseCaches(false);
conn.setRequestProperty("Pragma", "no-cache");
conn.setRequestProperty("Expires", "0");
conn.setRequestProperty("Cookie", ".ROBLOSECURITY=" + ROBLOSECURITY);
conn.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
conn.setRequestProperty("Accept-Language", "en-US,en;q=0.8");
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36");
conn.setDoInput(true);
conn.setRequestMethod("GET");
conn.connect();
Scanner data = new Scanner(conn.getInputStream());
data.useDelimiter("\\A");
String result = data.next();
data.close();
conn.disconnect();
するとまたはそれがユニークな結果に私が再起動するたびに返すことに注意することが重要であってもなくてもよいですプログラムは実行していますが、プログラム実行時は実行しません。
更新:
Wiresharkの分析(私は少し前回の私のコードを微調整):
GET /my/money.aspx HTTP/1.1
Pragma: no-cache
Expires: 0
Cookie: .ROBLOSECURITY=_|WARNING:-DO-NOT-SHARE-THIS.--Sharing-this-will-allow-someone-to-log-in-as-you-and-to-steal-your-ROBUX-and-items.|*sensitive*
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
Cache-Control: no-cache
Host: www.roblox.com
Connection: keep-alive
HTTP/1.1 200 OK
Cache-Control: private, s-maxage=0
Content-Type: text/html; charset=utf-8
Set-Cookie: rbx-ip=; domain=roblox.com; path=/; HttpOnly
Set-Cookie: RBXSource=rbx_acquisition_time=1/4/2016 12:45:21 AM&rbx_acquisition_referrer=&rbx_medium=Direct&rbx_source=&rbx_campaign=&rbx_adgroup=&rbx_keyword=&rbx_matchtype=&rbx_send_info=0; domain=roblox.com; expires=Wed, 03-Feb-2016 06:45:21 GMT; path=/
Access-Control-Allow-Credentials: true
Set-Cookie: rbx-ip=; domain=roblox.com; path=/; HttpOnly
Set-Cookie: RBXSource=rbx_acquisition_time=1/4/2016 12:45:21 AM&rbx_acquisition_referrer=&rbx_medium=Direct&rbx_source=&rbx_campaign=&rbx_adgroup=&rbx_keyword=&rbx_matchtype=&rbx_send_info=1; domain=roblox.com; expires=Wed, 03-Feb-2016 06:45:21 GMT; path=/
Set-Cookie: RBXEventTrackerV2=CreateDate=1/4/2016 12:45:21 AM&rbxid=59210735&browserid=3940274345; domain=roblox.com; expires=Fri, 22-May-2043 05:45:21 GMT; path=/
Set-Cookie: GuestData=UserID=-856460986; domain=.roblox.com; expires=Fri, 22-May-2043 05:45:21 GMT; path=/
P3P: CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"
Date: Mon, 04 Jan 2016 06:45:20 GMT
Content-Length: 153751
あなたとの間にプロキシがありますインターネット?以前はプロキシキャッシュのために問題がありました。 –
正しいデータでwhiresharkのログを1つ追加し、比較のために間違って2番目のログを追加できますか? –
通信の1つの要求/応答サイクルのWiresharkダンプは十分ではありません。少なくとも2つは必要です。また、wiresharkはクライアントホスト上で動作していますか? –