当前位置: 首页 > 知识库问答 >
问题:

尝试在swift 2.0中执行GET请求时出错

督坚白
2023-03-14

所以我尝试在Swift 2.0中执行GET请求,在从我的Swift 1.2迁移了几行代码后,我收到了这个错误,我真的不知道如何绕过它/正确迁移它。

函数编写如下:

func performGetRequest(targetURL: NSURL!, completion: (data: NSData?, HTTPStatusCode: Int, error: NSError?) -> Void) {
    let request = NSMutableURLRequest(URL: targetURL)
    request.HTTPMethod = "GET"

    let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()

    let session = NSURLSession(configuration: sessionConfiguration)

    let task = session.dataTaskWithRequest(request, completionHandler: { (data: NSData!, response: NSURLResponse!, error: NSError!) -> Void in
        dispatch_async(dispatch_get_main_queue(), { () -> Void in
            completion(data: data, HTTPStatusCode: (response as! NSHTTPURLResponse).statusCode, error: error)
        })
    })


    task.resume()
}

在此之后,Xcode向我输出以下错误:

无法使用类型为(NSMutableURLRequest,completionHandler: (NSData!,NSURLResponse!,NSError!) -

你有没有遇到过这种情况,或者知道如何解决它?

共有1个答案

邹博裕
2023-03-14

此代码应该有效。使用 Swift,你需要让它尽可能多地决定变量的类型。请注意,我取出了你的石膏。

    func performGetRequest(targetURL: NSURL!, completion: (data: NSData?, HTTPStatusCode: Int, error: NSError?) -> Void) {
    let request = NSMutableURLRequest(URL: targetURL)
    request.HTTPMethod = "GET"

    let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()

    let session = NSURLSession(configuration: sessionConfiguration)

    let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
        dispatch_async(dispatch_get_main_queue(), { () -> Void in
            completion(data: data, HTTPStatusCode: (response as! NSHTTPURLResponse).statusCode, error: error)
        })
    })


    task.resume()
}
 类似资料:
  • 我已经做了一个简单的场景登录在ASP点网络应用程序。但是我在登录时发送的请求在执行时显示为GET。第一个图像是HTTP请求的屏幕截图,第二个图像是执行时请求详细信息的屏幕截图。如何将该请求转换为POST请求?还添加了显示“对象移动到这里”消息的响应数据截图。

  • 第一种情况下的错误: java.net.ConnectException:连接超时:连接在java.net.DualStackPlainSockeTimpl.Connect0(本机方法)在java.net.DualStackPlainSockeTimpl.SocketConnect(未知源)在java.net.AbstractPlainSockeTimpl.SocketConnect(未知源)在j

  • 我在执行脚本时遇到了这个错误。我已经升级了FF(56),Gecko(v0.19)和Selenium 3.6。。。 这是我的代码: 日志中的错误: 线程“main”java中出现异常。lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver设置。壁虎。驱动系统属性;有关更多信息,请参阅https://github.com/mozilla/geckodri

  • 问题内容: 我试图在Java中实现一个非常简单的Trie,该Trie支持3种操作。我希望它具有一个insert方法,一个has方法(即trie中的某个单词)和一个toString方法以字符串形式返回trie。我相信我的插入工作正常,但是has和toString证明很困难。到目前为止,这就是我所拥有的。 特里类。 和节点类 因此,基本上,在创建Trie时,将创建一个TrieNode作为具有26个子级