ios - 无法识别 POST 正文值

标签 ios iphone swift post swift3

我正在调用 POST API,但无法识别发布值。 我正在使用 alamofire 进行 API 处理

 public func POSTRequest(postData : AnyObject?,APIName : String?,headers: HTTPHeaders?,success:@escaping (JSON) -> Void, failure:@escaping (String,String) -> Void)
        {
            let url = URL(string: APIName!)!
            var urlRequest = URLRequest(url: url)

        urlRequest.httpBody = postData as? Data
        urlRequest.httpMethod = "POST"
        urlRequest.allHTTPHeaderFields = headers

        let manager = Alamofire.SessionManager.default
        manager.session.configuration.timeoutIntervalForRequest = 30.0
        manager.request(urlRequest).responseJSON { ( responseData) -> Void in

            if responseData.result.isSuccess {
                let statusCode = responseData.response?.statusCode
                if(statusCode == 200){
                    let resJson = JSON(responseData.result.value!)
                    success(resJson)
                }
                else {
                    let resJson = JSON(responseData.result.value!)
                    let errorMsg = resJson["message"].stringValue
                    let errorTitle = resJson["title"].stringValue
                    failure(errorMsg,errorTitle)
                }
            }
            if responseData.result.isFailure {
                let error : Error = responseData.result.error!
                failure(error.localizedDescription,"")
            }
        }
    }



// MARK: Login
    func userLogin(postData: AnyObject, completionHandler:@escaping (JSON) -> Void,failure:@escaping (String,String) -> Void)
    {
        let apiName = GlobalConstants.rootUrl + GlobalConstants.loginUrl

        let httpHeaders: HTTPHeaders = getHeaders()

        ApiRequestHandler.shared.POSTRequest(postData: postData, APIName: apiName, headers: httpHeaders, success: { (JSON) in
            print("JSON \(JSON)")
            completionHandler(JSON)
        })
        { (Errormsg,ErrorTitle) in
            print("Error \(Errormsg)")
            failure(Errormsg,ErrorTitle)
        }
    }

我在这里创建帖子数据

        let postDataDct = NSMutableDictionary()
        postDataDct.setValue(self.userNameTextField.text, forKey: "username")
        postDataDct.setValue(self.phoneNumberTextField.text, forKey: "mobile")

        guard let data = try? JSONSerialization.data(withJSONObject: 
        postDataDct , options: JSONSerialization.WritingOptions.prettyPrinted) 
        as NSData else {
            return;
        }
        print(NSString(data: data as Data, encoding: 
        String.Encoding.utf8.rawValue)! as String)

在这里创建标题

func getHeaders() -> HTTPHeaders {
    let headers: HTTPHeaders = ["Content-Type": "application/json" ,"Authorization" : "Basic dGFuaXNocWdfgaFF%waXJvb3Q6dzBEMFlkSnR0"]
    return headers
}

我这里调用的是登录方法

   ApiManager.shared.userLogin(postData: postDataDct as AnyObject, completionHandler: { (JSON) in
      print(JSON)
    })
    { (ErrorMsg, ErrorTitle) in
        print(ErrorMsg)
    }

请帮我找出问题。

API 给我错误响应,提示用户名或密码为空。

最佳答案

对于发布 Alamofire 有它自己的参数类尝试像这样使用与 make share 一样使用服务器上的确切 key 。

let parameter: Parameters = [
        "Email": txtfld_email.text!,
        "Password": txtfld_password.text!    
                              ]

关于ios - 无法识别 POST 正文值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46337702/

相关文章:

ios - 在后台运行 IOS 应用程序 new developer

ios - 这个设置委托(delegate)方法是如何工作的?

iphone - 让我的网站在手机上默认缩小

ios - 无法从 UIWebView 获取要在 HTML 中呈现的 css 文件样式

ios - 如何停止信标监控

iphone - 除非您放大或移动 map ,否则 MapView 不会重新加载注释

c# - 如何使用 UIView.hidden 属性更改 View 的可见性

ios - 上下文类型 NSIndexSet 不能与 Swift 2.x 的数组文字一起使用

ios - 图像颜色错误?

swift - Xcode Swift 编辑器中的这个颜色功能是什么?