gpt4 book ai didi

html - Swift HTTP POST 请求登录

转载 作者:搜寻专家 更新时间:2023-10-31 19:34:48 25 4
gpt4 key购买 nike

嘿,我已经尝试解决这个问题很长一段时间了,所以现在我向你们寻求帮助。在我的项目中,我试图向带有登录表单的网站发送 POST 请求以访问服务器。但我不知何故无法传递数据。我要访问的网站是 https://edu.sh.ch

在我浏览器的 Inspector 中,我可以看到它需要一个 Post 方法来传递数据:

<form id="form1" name="form1" autocomplete="off" method="post" action="/uniquesigfe5a0f1f915f15b647d0b7a5306be984/uniquesig0/InternalSite/Validate.asp" onsubmit="return(SubmitForm());"></form>

这是我的代码:

函数 PostingCredentials(){

        let myUrl = NSURL(string: self.manipulatedUrl)
let request = NSMutableURLRequest(URL:myUrl!);
request.HTTPMethod = "POST";

// Compose a query string
let form1 = "user_name=MyUsername&password=MyPassword"

request.HTTPBody = form1.dataUsingEncoding(NSUTF8StringEncoding)

let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in

if error != nil
{
println("error=\(error)")
return
}
println("response = \(response)")
// You can print out response object
let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
//
println("responseString = \(responseString)")

}

task.resume()

}

请注意,self.manipulateUrl 等于我正常登录并提交凭据时显示的 url ( https://edu.sh.ch/uniquesigfe5a0f1f915f15b647d0b7a5306be984/uniquesig0/InternalSite/Validate.asp )

Post 函数发布了一些东西,但响应总是某种错误页面(我在代码中没有收到任何错误,但服务器的响应是错误的)

所以最后我的主要问题是:

  • 我的代码有什么问题
  • 我必须将我的 POST 方法发送到哪里,登录页面 url 或验证 url?

提前致谢

最佳答案

您的网页有问题。网络编码出了点问题。然后你也可以尝试下面的代码:

let form1 = "user_name=MyUsername&password=MyPassword"
let request:NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: "https://edu.sh.ch")!)
request.addValue("application/json", forHTTPHeaderField: "Accept")
request.HTTPMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-type")
request.HTTPBody = form1.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)

NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { (response:NSURLResponse!, data:NSData!, error:NSError!) -> Void in

var str = NSString(data: data, encoding: NSUTF8StringEncoding)
//var dict = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSArray
}

关于html - Swift HTTP POST 请求登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31761926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com