alamofire post 方法中的 response.result.value 为 nil
Posted
技术标签:
【中文标题】alamofire post 方法中的 response.result.value 为 nil【英文标题】:response.result.value in alamofire post method is nil 【发布时间】:2017-07-06 16:55:57 【问题描述】: let parametersDictionary = [
"email" : "name@gmail.com",
"password" : "password"
]
Alamofire.request("http://nanosoftech.com/store/user_check", method: .post, parameters: (parametersDictionary as NSDictionary) as? Parameters , encoding: JSONEncoding.default, headers: nil).responseJSON response in
print("response:", response.result.value)
我正在使用 post 方法 api 并且上面的代码不起作用。我得到零回应。但是这个 url 在 postman 和 android studio 中也可以正常工作。这个问题背后的原因是什么?
【问题讨论】:
您需要在我认为的请求正文中添加您的参数,检查这个答案***.com/questions/44484772/…也许可以帮助您 是的,我已经在那里添加了参数字典 代码(parametersDictionary as NSDictionary) as? Parameters
可能给你nil
。
我仅将其编辑为 parametersDictionary。还是行不通。您可以在邮递员中查看此网址。里面还好但是当我在代码中使用它时,它给出了零响应
@Sptibo 使用 GET 而不是 POST 并且必须工作
【参考方案1】:
您的网址仅在使用带有 url 编码的表单请求时才有效
尝试使用这个,就像 GitHub 上的 documented
Alamofire.request("http://nanosoftech.com/store/user_check", method: .post, parameters: parametersDictionary , encoding: URLEncoding.default)
如果此编码不起作用,请尝试encoding: URLEncoding.httpBody
【讨论】:
@Sptibo 刚刚注意到您发送的是 http 调用,而不是 https 调用。您将只需要执行 https,否则您的应用将被应用商店拒绝。从 2017 年开始,http 调用只允许在UIWebView
@Sptibo 我刚刚尝试使用"email" : "name@email.com", "password": "haha"
发送帖子请求并没有得到回应
但我一直在 get 方法中使用 http url,并且运行良好。如果我用另一个 http url 测试这段代码并发布一些表单数据,那么它就可以工作。但是这个网址给了我零回应。
@Sptibo 看看我更新的屏幕截图。您的网址确实返回 nil
您已发送原始数据。但我会发送表单数据。那是一样的吗?尝试发送表单数据并查看响应。【参考方案2】:
就像下面这样写。它对我有用
Alamofire.request("http://era.com.bd/UserSignInSV", method: .post,parameters:["uname":txtUserId.text!,"pass":txtPassword.text!]).responseJSON(responseData) -> Void in
if((responseData.result.value != nil))
let jsonData = JSON(responseData.result.value)
【讨论】:
它正在运行的实时项目中工作。我想你应该看到 json 响应..你能告诉我 json 响应吗... 使用 get 检查浏览器,因为浏览器不响应帖子:nanosoftech.com/store/… 我已经在邮递员中测试了这个网址,检查了表单数据并在正文中填写“电子邮件”和“密码”并发送它。它在邮递员中运行良好。 您好,亲爱的,我发现 json 响应我的 json 响应来自我在 xcode 中使用相同代码打印的代码。是 json 看起来像下面这样。如果仍然觉得问题,请分享您的代码...:::jsonData : "loginNodes" : [ "errorCode" : "1", "errorMessage" : "未经授权的用户 ID。登录被拒绝。" ]以上是关于alamofire post 方法中的 response.result.value 为 nil的主要内容,如果未能解决你的问题,请参考以下文章
Swift 中的 Alamofire .post。 “调用结果未使用,但产生‘DataRequest’