gpt4 book ai didi

ios - NSURLSession.sharedSession().dataTaskWithRequest 不起作用

转载 作者:行者123 更新时间:2023-11-30 13:06:20 24 4
gpt4 key购买 nike

我现在正在开发一个小型应用程序,我需要连接到一些网站才能获取一些信息。

这是我做的函数,90%的情况下可以满足我的需求。

func requestFunctionOn(url: String) {
print(#function + " url: \(url)")
let request = NSMutableURLRequest(URL: NSURL(string: url)!)
request.HTTPMethod = "POST"

NSURLSession.sharedSession().dataTaskWithRequest(request,
completionHandler: {
data, response, error in

if error != nil {
print("error=\(error)")
return
}

print("RSC = \((response as! NSHTTPURLResponse).statusCode)")
............. doing some more useful work .............
}).resume()
}

有时我会遇到问题,但我不知道为什么。例如,下面是工作案例 (RSC = 200) 和非工作案例 (RSC = 404) 的调试器控制台中的跟踪:

按预期工作:

requestFunctionOn url: http://abcnews.go.com
RSC = 200
(lldb)

未按预期工作:

requestFunctionOn url: http://www.bloomberg.com/asia
RSC = 404
(lldb)

我该怎么做才能使第二个案例起作用?我需要在哪里查看?

最佳答案

两个问题:

  • 您需要设置 Content-Type header 来指示 POST 请求正文的内容,Swift 等效于此:

    [request addValue:@"text/plain" forHTTPHeaderField:@"Content-Type"];
  • 您需要设置请求正文:

    request.HTTPBody = [NSData data];

对 Objective-C 片段表示歉意,但我认为这应该足够接近,以便您能够找出等效的 Swift 代码。 :-)

关于ios - NSURLSession.sharedSession().dataTaskWithRequest 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39313167/

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