Jok*_*ker 0 api alamofire swift2
我在我的应用程序中使用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)
}
Run Code Online (Sandbox Code Playgroud)
当我把debugPrint(reponse)
我得到的是这个
[请求]:{URL: http:// Domain/api/App/Sign_Up } [响应]:nil [数据]:0字节[结果]:FAILURE:错误域= NSURLErrorDomain Code = -1017"无法解析响应"UserInfo = {NSUnderlyingError = 0x7ffe0840e700 {错误域= kCFErrorDomainCFNetwork代码= -1017"(null)"UserInfo = {_ kCFStreamErrorCodeKey = -1,_kCFStreamErrorDomainKey = 4}},NSErrorFailingURLStringKey = http:// Domain/api/App/Sign_Up,NSErrorFailingURLKey = http ://域/ 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;
}
Run Code Online (Sandbox Code Playgroud)
UPDATE#1我创建了一个名为test的新方法,它接受一个参数.该方法只返回参数值.我尝试了Github中可用的示例代码及其工作.如果我在Alamofire请求方法中避免参数参数,我能够得到适当的响应.喜欢
Alamofire.request(.GET, "http://DomainName/api/App/Test", encoding: .JSON).responseJSON{
response in
debugPrint(response)
}
Run Code Online (Sandbox Code Playgroud)
在这里,我得到了一个成功的回应.我已经像这样更新了我的代码
Alamofire.request(.GET, "http://DomianName/api/App/Test?test=testing", encoding: .JSON).responseJSON{
response in
debugPrint(response)
}
Run Code Online (Sandbox Code Playgroud)
在这里我也得到了SUCCESS的回复.将参数值传递给参数参数 时发生错误parameters: ["test":"testing"].我也设置了这样的参数
let params = ["test":"testing"]
Alamofire.request(.GET, "http://DomianName/api/App/Test", parameters : params ,encoding: .JSON).responseJSON{
response in
debugPrint(response)
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我也得到了对FAILURE的回应
可能它不是你正在寻找的答案,但对我来说,从Alamofire请求方法中删除参数就可以了.这是改变:
let params : [String:AnyObject] = ["email":self.signin_Email.text!,"password":self.signin_Password.text!]
let request = Alamofire.request(.GET, "http://DomianName/api/App/Sign_Up", parameters: params).responseJSON{
response in
switch response.result{
case .Success(let data) :
let json = JSON(data)
print(json)
case .Failure(let error):
print("Error : \(error)" )
}
}
Run Code Online (Sandbox Code Playgroud)
我已经encoding:.JSON 从我的Alamofire请求方法参数列表中删除 了,就是这样......
| 归档时间: |
|
| 查看次数: |
4111 次 |
| 最近记录: |