作者:美煤MM就 | 来源:互联网 | 2023-09-04 19:23
我在使用Swift的Xcode中使用URLSession从我的自定义Api发出的http请求有问题。这是我的代码:
let forecast = self.forecastList[forecastIndex]
let url : URL = URL(string: "https:laundryireland.tk/getForecast?pwd=\(self.CustomApiKey)&temp=\(forecast.temp)&hum=\(forecast.humidity)&pres=\(forecast.pressure)&weat=\(forecast.weather)&wind=\(forecast.windspeed)")!
let task = URLSession.shared.dataTask(with: url) {(data,response,error) in
guard let data = data else { return }
do {
let scores = try JSONDecoder().decode(Scores.self,from: data)
// ...
} catch {
print("ops")
}
}
task.resume()
此代码已经在第三行引发了错误:
2019-11-04 12:53:26.701212+0000 DIYP[2554:1119528] [] tcp_input [C6.1:3] flags=[R.] seq=0,ack=2949324956,win=0 state=SYN_SENT rcv_nxt=0,snd_una=2949324955
2019-11-04 12:53:26.702757+0000 DIYP[2554:1119528] Connection 6: received failure notification
2019-11-04 12:53:26.702843+0000 DIYP[2554:1119528] Connection 6: failed to connect 1:61,reason -1
2019-11-04 12:53:26.702897+0000 DIYP[2554:1119528] Connection 6: encountered error(1:61)
2019-11-04 12:53:26.706142+0000 DIYP[2554:1119528] Task <46A61430-630E-48F8-B121-82B1C7BEE5DF>.<2> HTTP load failed,0/0 bytes (error code: -1004 [1:61])
我在这里看到:TIC TCP Conn Failed [4:0x604000360300]: 1:61 Err(61) <1> HTTP load failed (error code: -1004,错误1004
与设备无法解析主机有关,但是这对我来说似乎很奇怪,因为我的URL在远程运行的注册域中可以从任何地方访问的服务器(只需在浏览器中输入:http://laundryireland.tk即可正常工作)。
如何解决此问题?
因此,问题首先出在拼写错误:我的域名是http://laundryireland.tk,而在代码中我写了https://laundryireland.tk。
我发现仍然可以更改应用设置以允许http
连接:右键单击Info.plist
,Open As > Source Code
,然后复制并粘贴以下代码,紧接在顶部
之后:
NSAppTransportSecurity
NSAllowsArbitraryLoads