从Flutter网站发布用户和密码

我想在我编程的应用程序中使用来自网站的信息。我需要先登录网站。网站的html代码是这样的:

<div>Geben Sie Ihren Benutzernamen und Ihr Passwort ein,um sich an der Website anzumelden:</div>
<!-- ###LOGIN_FORM### -->
<form action="/fuer-studierende/intranet/" target="_top" method="post" onsubmit="; return true;">
    <fieldset>
    <legend>Anmelden</legend>
    <div>
        <label for="user">Benutzername:</label>
        <input type="text" id="user" name="user" value="" />
    </div>
    <div>
        <label for="pass">Passwort:</label>
        <input type="password" id="pass" name="pass" value="" data-rsa-encryption="" />
    </div>

我需要在“值”之后的第8行中填写用户名,并在“值”之后的第12行中填写密码。我该怎么办?

harry898 回答:从Flutter网站发布用户和密码

您必须使用flutters WebView包,才能使用JavaScript将数据从Flutter发送到HTML。

遵循此简短教程,以快速了解WebView软件包: https://medium.com/flutter/the-power-of-webviews-in-flutter-a56234b57df2

如果将WebViewController分配给WebView(请参阅教程),则可以使用控制器从Flutter将JavaScript消息发送到HTML网页。

在WebView小部件的«onPageFinished»函数中使用以下代码:

_webController.evaluateJavascript(
   '''
     var email = document.getElementById("user");
     var password = document.getElementById("pass");
     email.value = "${_yourFlutterUserTextController.text}";
     password.value = "${_yourFlutterPasswordTextController.text}"
   '''
);

如您所见,您可以在Flutter应用中放置Flutter变量(如用户名和密码),并将JavaScript代码段发送到执行JavaScript的网站。

您还可以在填写登录名后点击按钮。

希望这会有所帮助,祝你好运!

,

当您在浏览器中填写这些字段并点击submit时,浏览器就会使用action标签中指定的method将请求发送到form URL。如果方法是POST,它将收集字段,并使用称为x-www-form-urlencoded的格式对其进行编码,并将其添加为请求的正文。

(请注意,浏览器可能会执行一些其他步骤,例如运行JavaScript,这可能会更改值。您需要以相同的方式更改值。)

Dart package:http为您提供所有这些功能。如果您提供Map<String,String>作为post的body参数,它将为您编码并设置内容类型。

void send() async {
  var form = <String,String>{
    'user': 'miwa','pass': 'M1VVA%',};

  var res = await http.post(
    'https://some.website.de/fuer-studierende/intranet/',body: form,);
  print(res.statusCode);
  print(res.body);
}

当然,作为响应,您可能会收到大量HTML和会话Cookie,分别必须对其进行解析和提取。

本文链接:https://www.f2er.com/3121240.html

大家都在问