【问题标题】:Alamofire post request return 404 in SwiftAlamofire 发布请求在 Swift 中返回 404
【发布时间】:2018-04-29 03:32:09
【问题描述】:

我将通过 alamofire 发布请求。我可以使用 Postman 发布请求。响应返回 true(201 代码)。但是,当我尝试使用 Alamofire 时返回 404 代码。怎么了?

我的代码:

     let headers: HTTPHeaders = [
    "Authorization": "Basic xxxxxxxxxxxx",
    "content-type": "application/json"
     ]
        let parameters:[String:Any] = [
        "xxx":123,
        "yyy":"test",
        "zzz":"iphone"
        ]

    Alamofire.request(myUrl, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers).responseJSON { response -> Void in

        switch response.result {
        case .success:
            print(response.response?.statusCode)

            break
        case .failure(let error):

            print(error)
        }
    }

返回此消息:

success {
message = "No HTTP resource was found that matches the request URI 'https://xxxxx/PostErrorFeedBack'.";

}

【问题讨论】:

  • 这是Content-Type,而不是content-type
  • 相同,没有任何改变
  • 您要访问哪个 URL?它是公共 URL 还是您尝试访问自己的本地服务器?
  • 似乎不是 404,根据消息它是一个成功的请求...这里的 404 到底在哪里?

标签: swift3 alamofire


【解决方案1】:

试试这个希望对你有帮助!!

let headers = [
    "Authorization": "Basic xxxxxxxxxxxx"
]
let parameters = [

]

Alamofire.request(.POST, "url", parameters: parameters, headers: headers, encoding: .JSON)
        .validate(contentType: ["application/json"])
        .responseJSON { response in
            if response.response?.statusCode == 200 {
                print("Success with JSON: \(response.result.value)")

                success(updatedUser)
            }
            else {
                let error = response.result.value as! NSDictionary
                let errorMessage = error.objectForKey("message") as! String
                print(errorMessage)
                failure(errorMessage)
            }


    }

【讨论】:

  • 不幸的是,@Bikesh Thakur 什么都没做
  • 我收到此错误“调用中的额外参数方法”
  • 我不明白成功更新用户。这是什么?
【解决方案2】:

你可以试试这个方法来使用Alamofire,因为这对我有用。

let headers = [
               "Accept": "application/json",
               "Authorization" : "Authorization: Bearer ", //if any
               "Cookie" : "Cookie" //if any
              ]

let parameterDict: NSDictionary = NSDictionary.init(objects: [nameTextField.text!, reportTextView.text!], forKeys: ["Name" as NSCopying,"Message" as NSCopying])

Alamofire.request("API",method: .post, parameters: parameterDict as? [String : AnyObject] , encoding:JSONEncoding.default, headers:headers) .responseJSON {  response in switch response.result {

     case .success(let JSON):
         print("Success with JSON: \(JSON)")
         let response = JSON as! NSDictionary

     case .failure(let error):
         print("Request failed with error: \(error)")


         }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多