समस्या
HttpURLConnection
कोई जावास्क्रिप्ट समर्थन नहीं है, लेकिन जावास्क्रिप्ट का उपयोग करके एक आवश्यक कुकी उत्पन्न की जाती है।
आपका कॉल
String reqUrl = "http://zxccvvv.cuccfree.com/send_data.php";
URL url = new URL(reqUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
विफल रहता है, क्योंकि कुकी __test
गायब है।
ठीक करें
JavaScript स्रोत पर पहली नज़र से लगता है कि कुकी किसी दिए गए url के लिए स्थिर है, इसलिए यह स्थिर कुकी के लिए सेट करने के लिए पर्याप्त हो सकता है :
String cookie = "__test=2bf7c15501c0ec57f8e41cb84871a69c";
URL url = new URL(reqUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(7000);
conn.setRequestMethod("GET");
conn.setRequestProperty("Cookie", cookie);
वैकल्पिक: वेबव्यू का उपयोग करके हम कुकी को पकड़ सकते हैं, इसलिए यह बेहतर तरीका है, क्योंकि यह टूटेगा नहीं, अगर कुकी बदल जाती है और इसमें अधिक समय की देरी नहीं होती है:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getCookie();
if(cookie!=null) {
new GetContacts().execute();
}
}
private void getCookie(){
CookieManager.setAcceptFileSchemeCookies(true);
WebView wv = new WebView(getApplicationContext());
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl(url);
cookie = CookieManager.getInstance().getCookie("zxccvvv.cuccfree.com");
}
और इसे उपरोक्त उदाहरण के रूप में सेट करें:
conn.setRequestProperty("Cookie", cookie);
लॉगकैट में आउटपुट
Response from url: [{"0":"1","id":"1","1":"pertanyaan ke 1","ask":"pertanyaan ke 1"},{"0":"2","id":"2","1":"pertanyaan ke 2","ask":"pertanyaan ke 2"},{"0":"3","id":"3","1":"pertanyaan ke 3","ask":"pertanyaan ke 3"},{"0":"4","id":"4","1":"pertanyaan ke 4","ask":"pertanyaan ke 4"},{"0":"5","id":"5","1":"pertanyaan ke 5","ask":"pertanyaan ke 5"}]