我正在尝试使用 Alamofire 发出 Post 请求,以便以编程方式登录到 HTML 页面。
这里是 HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="http://icrew.airmacau.com.mo//JavaScripts/jquery-1.4.js"></script>
<script type="text/javascript" src="http://icrew.airmacau.com.mo//JavaScripts/JScript.js"></script>
<script type="text/javascript" src="http://icrew.airmacau.com.mo//JavaScripts/jquery.table.sort.js"></script>
<script type="text/javascript" src="http://icrew.airmacau.com.mo//JavaScripts/jquery.table.page.js"></script>
<title>
Air Macau's Online Preparation System
</title>
<link href="Css/login.css" rel="stylesheet" type="text/css">
<link href="App_Themes/Default/dialog.css" type="text/css" rel="stylesheet">
<link href="App_Themes/Default/img/calendar-win2k-cold-1.css" type="text/css" rel="stylesheet">
<link href="App_Themes/Default/index.css" type="text/css" rel="stylesheet">
</head>
<body>
<form name="form1" method="post" action="Login.aspx" id="form1">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE3MjIwMzY0MTRkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBQtsb2dpbkJ1dHRvbSnqD+GLKl7iJjygY5goYwB/Pff1">
<div id="htmls"></div>
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="C2EE9ABB">
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBAKo/8+8DwKPpuq2CALogbjNDgL59eu0Cd3qM6GPMChXJ735ACwTVvt1ix//">
<div class="frame">
<div class="outer">
<div id="middle">
<div id="inner">
<div class="loginBG">
<div id="logoMacau">
</div>
<div id="airImg">
</div>
<div id="loginBox">
<input name="userName" type="text" id="userName">
<input name="userPassword" type="password" id="userPassword">
<div id="Div1" onclick="alert('submit')">
</div>
<input type="image" name="loginButtom" id="loginButtom" src="images/btnlogin.png" border="0">
<div id="divPrompt" style=" position:absolute; top:-31px; left:-200px; right: -187px; color:Red; font-size:large; height: 25px;">
<span id="lblPrompt"><b></b></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</body>
</html>
为了登录用户,我应该将哪个字段传递给 Alamofire 发布请求?我想我错过了一些领域......
现在我在这里尝试过:
ps:__VIEWSTATE、__VIEWSTATEGENERATOR、__EVENTVALIDATION 是我在进行 get 调用时获得的信息,我只是从 html 中解析并提取值,因为它们是隐藏字段。
let parm = ["__VIEWSTATE":result, "__VIEWSTATEGENERATOR":generator, "__EVENTVALIDATION":evaluVal, "userName":"1234", "userPassword": "1234pass"]
AF.request ("https://icrew.airmacau.com.mo/Login.aspx",method: .post, parameters: parm, encoding: URLEncoding.default).response { response in
if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) {
do {
let html: String = utf8Text
let doc: Document = try SwiftSoup.parse(html)
print(doc.body())
} catch let error {
print(error.localizedDescription)
}
}
}