代码之家  ›  专栏  ›  技术社区  ›  PvDev

在ios swift中使用alamofire请求超时错误1001?

  •  5
  • PvDev  · 技术社区  · 7 年前

    在这里,我使用 阿拉莫菲尔 . 如果状态成功,则将从后端发送通知。我试过的内部通知功能 邮递 方法代码使用 阿拉莫菲尔 数据任务方法 但它不起作用。在控制台中,我得到请求超时或什么都没有。

    这是我的代码:

       func postNotification(postItem: String, post: Post) {
    
    
     //                declare parameter as a dictionary which contains string as key and value combination. considering inputs are valid
    
    
    
        print("Get token from post:::",post.token)
        print(postItem)
        let token = UserDefaults.standard.string(forKey: "token")
                //create the url with URL
    
    
        var parameters       = [String:Any]()
    
        parameters["count"]  = post.likeCount!
        parameters["likedby"]  = currentName
        parameters["postId"] = postItem
        parameters["token"] = post.token!
    
        let Url = String(format: "http://highavenue.co:9000/likesnotification")
        guard let serviceUrl = URL(string: Url) else { return }
        //        let loginParams = String(format: LOGIN_PARAMETERS1, "test", "Hi World")
        let parameterDictionary = ["username" : "Test", "password" : "123456"]
        var request = URLRequest(url: serviceUrl)
        request.httpMethod = "POST"
        request.setValue("Application/json", forHTTPHeaderField: "Content-Type")
        guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: []) else {
            return
        }
        request.httpBody = httpBody
    
        let session = URLSession.shared
        session.dataTask(with: request) { (data, response, error) in
            if let response = response {
                print(response)
            }
            if let data = data {
                do {
                    let json = try JSONSerialization.jsonObject(with: data, options: [])
                    print(json)
                }catch {
                    print(error)
                }
            }
            }.resume()
    
    
      //        let headers: HTTPHeaders = ["Content-Type" :"application/x-www-form-urlencoded"]
      //
      //        Alamofire.request("http://highavenue.co:9000/likesnotification", method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers).responseJSON { (response) in
     //                    //             original URL request
     //                        print("Request is :",response.request!)
     //
     //                        // HTTP URL response --> header and status code
     //                        print("Response received is :",response.response)
     //
     //                        // server data : example 267 bytes
       //                        print("Response data is :",response.data)
      //
        //                        // result of response serialization : SUCCESS / FAILURE
       //                        print("Response result is :",response.result)
       //
       //                        debugPrint("Debug Print :", response)
      //
       //
       //        }
    
    
      //        Alamofire.request("http://highavenue.co:9000/likesnotification", method: HTTPMethod.post, parameters: json, encoding: JSONEncoding.default, headers: headers).responseJSON { response in
       //
        //            // original URL request
       //            print("Request is :",response.request!)
       //
      //            // HTTP URL response --> header and status code
        //            print("Response received is :",response.response)
       //
      //            // server data : example 267 bytes
       //            print("Response data is :",response.data)
       //
       //            // result of response serialization : SUCCESS / FAILURE
      //            print("Response result is :",response.result)
      //
      //            debugPrint("Debug Print :", response)
      //        }
    
    
    
      }
    

    非常感谢您的帮助。。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Ashish Kakkad Roman Scher    7 年前

    耶解决了。有一个疏忽的错误。我在URL中加了一个斜杠。我将web API更改为另一个文件夹,在iOS代码中更改时犯了这个错误。并在此设置超时时间间隔。

    let RequestData = NSMutableURLRequest(URL: NSURL.init(string: "Your URL Hear")!)
    RequestData.HTTPMethod = "POST"
    RequestData.timeoutInterval = 250 // Time interval here.
    
    Alamofire.request(RequestData).responseJSON { (responseData) -> Void in
        if((responseData.result.value) != nil) { // response
            print(responseData.result.value!)
        }
    }    
    

    希望这对你有帮助。。