Tôi có ứng dụng android bao gồm WebWiew
và tôi cần đăng nhập tự động vào trang web bằng mã. Tôi đã thử sử dụng postUrl()
và có vẻ như hoạt động ... nhưng chỉ trên một số trang web.Cách gửi dữ liệu POST bằng mã trong chế độ xem web trên Android
Dưới đây là đoạn code tôi đang sử dụng:
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"));
}
}
này Làm việc lớn cho dropbox.com, nhưng các trang web khác như google.com, facebook.com vv chỉ tải các trang đăng nhập hoặc cung cấp cho một lỗi (google.com đưa ra một lỗi nói rằng tôi cần bật cookie).
Hiện tại, tôi chỉ đang chuyển dữ liệu bài đăng bằng tay; nhìn vào biểu mẫu đăng nhập cho trang web và đặt các trường tên/giá trị trong tệp PostData trong mã của tôi. Trên các trang web như google, biểu mẫu đăng nhập có nhiều trường ẩn và tôi cũng đã thêm các trường đó vào postData.
Nếu có ai có thể cho tôi biết bất cứ điều gì tôi đang làm sai, hãy cho tôi biết, tôi khá bối rối về điều này.
Xin chào an00b. Cảm ơn câu trả lời! Tôi tin rằng tôi đã thử điều này mà không có may mắn. Tôi không còn làm việc về vấn đề cụ thể này nữa, tôi quyết định đi một con đường riêng. Tôi sẽ bỏ phiếu cho bạn dù sao đi nữa, bởi vì tôi thực sự đánh giá cao câu trả lời. – javajavajavajavajava
"BASE64" không có bộ ký tự, do đó, điều này có thể hoạt động (tùy thuộc vào postData) nhưng nó cũng có thể thất bại. Cách chính xác là mã hóa dữ liệu postData thành "application/x-www-form-urlencoded" được mã hóa, có thể được thực hiện với URLEncoder.encode (postData, "UTF-8"); – raudi
raudi u có thể đặt câu trả lời bằng đoạn trích sử dụng "application/x-www-form-urlencoded" – D4rWiNS