我正在尝试为学校的年级门户开发一个应用程序(使用Home Access Center平台)。
(我是一个初学者,所以请原谅我提供的信息中的任何错误之处,如果您需要我提供的信息,我将很活跃)
到目前为止,我已经能够通过.responseString以字符串形式发送请求并接收响应,当我打印响应时,我得到的是HTML文档类型,其登录参数位于底部附近。到此为止,但是我不确定如何将用户输入的数据传递到正确的位置。 (我知道参数的位置,但不知道如何访问它们。)
HTML文件输出如下所示,
<div>
<label class="sg-logon-left" for="LogOnDetails_UserName">User Name:</label>
<input class="sg-logon-right" data-val="true" data-val-required="The User Name: field is required." id="LogOnDetails_UserName" name="LogOnDetails.UserName" type="text" value="" />
<span class="field-validation-valid sg-logon-validation" data-valmsg-for="LogOnDetails.UserName" data-valmsg-replace="true"></span>
</div>
(只是文件的一小部分)
我尝试使用字典传递参数的多个不同组合,但是没有一个实际上到达该位置。这个网站使用动作表单(我是一个初学者,所以我不确定与HTML元素的不同交互方式),但这就是我运行程序时通过的方式
<form action="/HomeAccess/SessionReset?ReturnUrl=%2FHomeAccess%2FAccount%2FLogOn%3FReturnUrl%3D%252fhomeaccess%252f" method="post">
< div class="sg-container" id="SignInSectionContainer">
如果需要,我将发送当前的Swift代码,但如果您有解决方案,则网站为https://hac.friscoisd.org/HomeAccess/Account/LogOn?ReturnUrl=%2fhomeaccess%2f,并且我使用的是Alamofire和Xcode(最新版本)
我一直在广泛地寻找一个可能有答案的线程,但是除了关于如何解析HTML文件的信息外,我什么也找不到。 非常感谢您的帮助,如果这是一个重复的问题,请重新给我发送邮件。
快捷代码 @IBAction func getLoginData(_ sender:Any){
let username = Username.text!
let password = Password.text!
if (username != "" && password != "")
{
let params : [String : String] = ["name" : "LogOnDetails.UserName","type" : "text", "value" : username]
//Make database a choosable number parameter later
sendLoginRequest(url: HAC_URL, parameters: params)
}
else
{
errorOutput.text = "Invalid Login"
}
}
func sendLoginRequest(url: String, parameters : [String : String])
{
Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding()).responseString
{
response in
if response.result.isSuccess
{
self.errorOutput.text = "Success"
print(response.result.value!)
}
else if response.result.isFailure
{
self.errorOutput.text = "Connection Issues"
print(response.error.debugDescription)
}
else
{
self.errorOutput.text = "Program Failure"
}
}
}
修改 我需要在HTML中输入用户输入的字符串