मेरे पास एक एंड्रॉइड एप्लिकेशन है जिसमें WebWiew
है और मुझे कोड का उपयोग करके स्वचालित रूप से किसी साइट पर लॉगिन करने की आवश्यकता है। मैंने postUrl()
का उपयोग करने का प्रयास किया है और ऐसा लगता है कि यह काम करता है ... लेकिन केवल कुछ साइटों पर।एंड्रॉइड वेबव्यू में कोड के साथ POST डेटा कैसे भेजें
यहाँ कोड मैं का उपयोग कर रहा है:
public class webviewActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webview = new WebView(this);
setContentView(webview);
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webview.setWebViewClient(new WebViewClient());
String postData = "[email protected]&login_password=myPassword";
webview.postUrl("https://www.dropbox.com/login", EncodingUtils.getBytes(postData, "utf-8"));
}
}
यह काम करता है dropbox.com के लिए महान, लेकिन google.com, facebook.com, आदि जैसे अन्य साइटों सिर्फ प्रवेश पृष्ठ लोड या देना एक त्रुटि (google.com एक त्रुटि देता है जिसमें मुझे कुकीज़ सक्षम करने की आवश्यकता है)।
अभी मैं सिर्फ हाथ से पोस्ट डेटा जा रहा हूं; साइट के लिए लॉगिन फॉर्म देख रहे हैं और मेरे कोड में पोस्टडेटा में नाम/मूल्य फ़ील्ड डाल रहे हैं। Google जैसी साइटों पर, लॉगिन फॉर्म में कई छिपे हुए फ़ील्ड हैं और मैं उन्हें पोस्टडेटा में भी जोड़ रहा हूं।
अगर कोई मुझे किसी चीज़ का कोई विचार दे सकता है तो मैं गलत कर रहा हूं कृपया मुझे बताएं, मैं इस बारे में बहुत उलझन में हूं।
हाय an00b। जवाब के लिए धन्यवाद! मेरा मानना है कि मैंने भाग्य के साथ यह कोशिश की है। मैं अब इस विशिष्ट समस्या पर काम नहीं कर रहा हूं, मैंने एक अलग मार्ग जाने का फैसला किया। मैं आपको वैसे भी वोट दूंगा, क्योंकि मैं वास्तव में उत्तर की सराहना करता हूं। – javajavajavajavajava
"BASE64" कोई वर्ण सेट नहीं है, इसलिए यह काम कर सकता है (पोस्टडेटा के आधार पर) लेकिन यह भी असफल हो सकता है। सही तरीका है कि पोस्टडाटा को "एप्लिकेशन/एक्स-www-form-urlencoded" एन्कोडेड होना चाहिए, जिसे URLEncoder.encode (postData, "UTF-8") के साथ किया जा सकता है; – raudi
रुडी आप "एप्लिकेशन/एक्स-www-form-urlencoded" – D4rWiNS