【发布时间】:2016-02-07 13:20:07
【问题描述】:
我在我的应用程序中使用 Alamofire。这是我的 Alamofire 请求代码
let params: [String:AnyObject] = ["email": self.signin_Email.text!, "password": self.signin_Password.text!]
Alamofire.request(.GET, "http://DomainName/api/App/Sign_Up", parameters: params, encoding:.JSON)
.responseJSON { response in
debugPrint(response)
}
当我输入debugPrint(reponse)
我得到的是这个
[请求]:{ URL: http://Domain/api/App/Sign_Up } [响应]:无 [数据]: 0字节[结果]:失败:错误域=NSURLErrorDomain代码=-1017 “无法解析响应” UserInfo={NSUnderlyingError=0x7ffe0840e700 {错误域=kCFErrorDomainCFNetwork 代码=-1017 "(null)" UserInfo={_kCFStreamErrorCodeKey=-1, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=http://Domain/api/App/Sign_Up, NSErrorFailingURLKey=http://Domain/api/App/Sign_Up, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-1, NSLocalizedDescription=无法解析响应}
在这里我总是得到响应状态为失败。我无法弄清楚发生了什么。 (使用 mvc4 作为后端)。 这是接受上述给定请求并返回 JSON 数据的 Api 方法
[System.Web.Http.HttpGet]
public JsonResult Sign_Up(string email,string password)
{
email = email;
password = password;
System.Web.Mvc.JsonResult usertoreturn = new System.Web.Mvc.JsonResult();
SignUpViewModel signupviewmodel = new SignUpViewModel();
usermodeltocheck.SetPassword(password);
usermodeltocheck.MembershipDate = DateTime.Now;
usermodeltocheck.IsMember = true;
usermodeltocheck.PublicKey = Guid.NewGuid().ToString("N");
usermodeltocheck.MembershipStatus = true;
usertoreturn.Data = Helper.UpdateUser(usermodeltocheck);
}
usertoreturn.JsonRequestBehavior = System.Web.Mvc.JsonRequestBehavior.AllowGet;
return usertoreturn;
}
UPDATE #1 我创建了一个名为 test 的新方法,它接受一个参数。该方法只返回参数值。我尝试了@987654324 中提供的示例代码@ 及其工作。如果我在 Alamofire 请求方法中避免参数参数,我能够得到正确的响应。喜欢
Alamofire.request(.GET, "http://DomainName/api/App/Test", encoding: .JSON).responseJSON{
response in
debugPrint(response)
}
在这里我得到了一个成功的响应。我已经像这样更新了我的代码
Alamofire.request(.GET, "http://DomianName/api/App/Test?test=testing", encoding: .JSON).responseJSON{
response in
debugPrint(response)
}
在这里我也得到了成功的响应。当我将参数值传递给参数 parameters parameters: ["test":"testing"] 时发生错误。
我也这样设置参数
let params = ["test":"testing"]
Alamofire.request(.GET, "http://DomianName/api/App/Test", parameters : params ,encoding: .JSON).responseJSON{
response in
debugPrint(response)
}
通过这种方式,我也收到了对 FAILURE
的回复【问题讨论】: