Swift - 错误:套接字 SO_ERROR [61:连接被拒绝]

问题描述 投票:0回答:2

我想用 swift 将 Web 服务器连接到我的 ios 应用程序。因此,我创建了一个函数来使用“POST”创建任务,但是当我调用它时,我收到一条错误消息:

nw_socket_handle_socket_event [C1.1:2] 套接字 SO_ERROR [61:连接被拒绝]

我的代码:

func createDish(dish :Dish) {
   
    let url = URL(string :"http://localhost:8080/dish)!
    var request = URLRequest(url :url)
    request.httpMethod = "POST"
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    
    if let data = try? JSONEncoder().encode(dish) {
        request.httpBody = data
    }
    
    URLSession.shared.dataTask(with: request) { data, response, error in
        
        if let error = error {
            print(error.localizedDescription)
            return
        }
        if let data = data {
            if let dish = try? JSONDecoder().decode(Dish.self, from: data)
            {
                self.dishes.append(dish)
            }
        }
    }.resume()
}

我根本不知道错误来自哪里,如果它是在我的应用程序或服务器代码中。谢谢您的回复。

post server vapor
2个回答
15
投票

我也有类似的问题。
将 localhost 替换为计算机的 IP 地址(例如 192.168.100.XXX)后,效果良好。
如何在 Mac 上查找我的 IP:
https://osxdaily.com/2010/11/21/find-ip-address-mac/?fbclid=IwAR1oiq4xyvAWj9XOaG3VzGdr6TIyIbFE08PzCZLNbEu2RaQf4LUWCkFGQgY


0
投票

不久前就发生在我身上了! 所以开发工具包有自己的网络,所以你无法连接到本地主机或 127.0.0.1,所以获取你的 ip:

ifconfig en0 | grep 'inet ' | awk '{print $2}'

然后用它进行查询

let url = URL(string :"http://192.168.1.XXX:8080/dish)!
© www.soinside.com 2019 - 2024. All rights reserved.