我在我目前正在使用的项目中遇到大问题。我在做什么错Swift 3 http请求和响应
我一直在阅读关于URLSession的各个地方,但他们都似乎过时了,并指NSURLSession我认为他们会相当相似,他们可能是但像一个像我这样的新手我迷路了。我所做的是不工作,我不喜欢我找到的解决方案,因为他们都在控制器上工作。
http://swiftdeveloperblog.com/image-upload-with-progress-bar-example-in-swift/ 这个例子。我正在使用PHP脚本,但想要创建一个可以随意调用和使用的网络层。但是我从哪里可以了解如何使用这个API,我缺乏一个很好的资源。
我发现的每个地方都类似于以上或更旧的链接。少数新手似乎也没有真正解释如何使用这个API。
同时我是委托模式的新手,事实上我只知道这是在这个Api中大量使用的东西,但我没有IDEA的方式或原因。 基本上我需要帮助找到我的方式来解决这个问题就在这里:
我一直试图做这样的事情:
public class NetworkPostRequestor:NSObject,NetworkPostRequestingProtocol,URLSessionTaskDelegate,URLSessionDataDelegate
{
public var _response:HTTPURLResponse
public override init()
{
_response = HTTPURLResponse()
}
public func post(data: Data, url: URL)
{
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Keep-Alive", forHTTPHeaderField: "Connection")
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration,delegate: self, delegateQueue: OperationQueue.main)
let task = session.uploadTask(with: request, from: data)
task.resume()
}
public func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void)
{
_response = response as! HTTPURLResponse
}
}
但是我从来没有打到PHPserver。服务器打到时会在终端上这样说:
[Tue Mar 7 11:43:20 2017] 192.168.250.100:64265 [200]:/
[Tue Mar 7 11:43:20 2017] 192.168.250.100:64266 [404]: /favicon.ico - No such file or directory
那么就是当我用浏览器打开它并且没有图像时。但至少我知道它会写入终端的东西,如果它击中它。什么都没有发生如果没有资源教我这个API,恐怕我永远不会学会如何解决这个问题,或者即使我正在做一些完全错误的事情。
我用斯威夫特3的Xcode 8.2.1
编辑:
我已经添加了此方法的类,我发现我打它每一次。
public func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?)
{
_error = error.debugDescription
}
调试说明有这个字符串“一些”
想知道为什么有人给我一个减号?有什么方法可以改变我的帖子,以纠正我得到负面投票的原因吗? – Helbo
我的帖子绝对没有错。这个问题是有效的,你已经添加了对你所尝试过的内容的解释并描述了你的结果。片段被添加,问题被很好地格式化... –
@AshleyMills试图删除您指出的部分。感谢您告知我我的错误 – Helbo