我是IOS开发的新手。 我正在请求具有POST方法的Web服务,并在标头中接受两个参数密码和确认。 这是网址 https://abc.xyz.eu/pqr/Api 这是方法 ?API /帐户/ ChangePassword密码= {密码}&安培;确认= {}确认
如何调用此方法 我尝试了很多代码,但得到400,401,404错误
最后我通过使用基本身份验证获得了200个chrome中的状态代码。现在的问题是,我很困惑如何传递基本身份验证和头参数的值 请帮助我
NSString *UrlWithParameters=[NSString stringWithFormat:@"https://abc.xyz.eu/abc/api/Account/ChangePassword?"];
NSURL *ServiceURL =[NSURL URLWithString:UrlWithParameters];
NSMutableURLRequest * request =[NSMutableURLRequest requestWithURL:ServiceURL];
NSString *post = [NSString stringWithFormat:@"password=%@&confirmation=%@",self.txtNewPassord.text,self.txtConPassord.text];
NSData* postData = [post dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPMethod:@"POST"];
NSString *authValue = [NSString stringWithFormat:@"Basic %@",self.appDelegate.UserPasswordBase64];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"content-type"];
[request setHTTPBody:postData];
NSURLResponse *response;
NSError *err;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
`
答案 0 :(得分:0)
如果您收到401错误,则表示您未经授权。 API调用看起来很奇怪,因为您不发送任何授权信息。如果不是您的服务,请首先尝试从浏览器,CLI或任何REST客户端检查此API。如果是您的服务器,请检查服务器日志,它如何尝试路由您的呼叫。例如,问题可能在于URL编码。
答案 1 :(得分:0)
尝试使用AFNetworking,它是最好的iOS网络库(和开源!)
有了它,这可能会成功:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"password": @"xxx", @"confirmation": @"yyy"};
[manager POST:@"https://abc.xyz.eu/pqr/api/Account/ChangePassword" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];