我目前有一个用 Java 编写的 Android 应用程序,我正在用 Xamarin.Forms 重写它以支持 iOS。在 Android 应用程序中我使用 Jsoup,在 Xamarin 应用程序中我使用 AngleSharp。
我的问题是下面的代码适用于 iOS 和 UWP,但不适用于 Droid 项目。
我的怀疑是调用 context.OpenAsync(url); 时没有建立连接;
我有
<uses-permission android:name="android.permission.INTERNET" />
在我的 Android 清单中。我的目标是 minSdk=17,targetSdk=24。这个问题在模拟器和我的 Galaxy S7 上都存在。
代码:
try
{
var url = "<URL>";
var configuration = Configuration.Default.WithDefaultLoader().WithCookies();
var context = BrowsingContext.New(configuration);
var document = await context.OpenAsync(url);
IHtmlInputElement username = document.QuerySelector("input[id='username']") as IHtmlInputElement;
IHtmlInputElement password = document.QuerySelector("input[id='password']") as IHtmlInputElement;
IHtmlFormElement loginform = document.QuerySelector("form[id='logonForm']") as IHtmlFormElement;
username.Value = "<uname>";
password.Value = "<pword>";
document = await loginform.SubmitAsync();
Debug.WriteLine(context.Active.Url);
}
catch (Exception e)
{
Debug.WriteLine("ERROR " + e);
}
NB。由于隐私,我没有显示网址或用户名和密码。任何帮助表示赞赏!