ios - 如何在 iOS 12+ 中使用 http 连接到硬编码的 IP 地址
问题描述
我正在尝试使用服务器(EC2 开发服务器)和客户端制作一个简单的原型。服务器只有一个硬 IPv4 地址(数字)并根据请求发送 http 结果,而客户端是一个原型 iOS 12+ 应用程序,我只想从使用 http 的服务器检索数据。我该怎么做?提前致谢!
解决方案
阅读URLSession以及如何将网页端数据提取到内存中。
func startLoad() {
let url = URL(string: "http://IPADDRESS/")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let error = error {
self.handleClientError(error)
return
}
guard let httpResponse = response as? HTTPURLResponse,
(200...299).contains(httpResponse.statusCode) else {
self.handleServerError(response)
return
}
// Data is in the data-variable.
if let mimeType = httpResponse.mimeType, mimeType == "text/html",
let data = data,
let string = String(data: data, encoding: .utf8) {
// Avoid using the main-thread to return any data.
DispatchQueue.main.async {
// Return data to use in view/viewcontroller
self.webView.loadHTMLString(string, baseURL: url)
}
}
}
task.resume()
}
推荐阅读
- flutter - 多个列表视图和行 - Flutter
- html - 打开子详细信息元素后,我的 div 将无法滚动
- javascript - Vue路由器-从API调用更新URL后获取this.$route.query?
- python - Python请求包不返回数据
- reactjs - 如何在反应js中更新对象值的setstate数组
- node.js - 使用 Node.js 和 Flutter 进行用户身份验证
- c++ - 静态内联函数中的函数局部静态对象不共享
- ios - 从firebase加载位置到MapView的Swift 5错误
- javascript - Javascript(html)Math.random()范围不起作用
- reactjs - react-bootstrap-table2 搜索不适用于格式化单元格