Ios 如何在url中传递参数?

Ios 如何在url中传递参数?,ios,iphone,ios7,Ios,Iphone,Ios7,我是IOS开发新手。 我正在请求web服务,该服务具有POST方法,并在标头中接受两个参数密码和确认。 这是url 这就是方法 api/Account/ChangePassword?密码={password}&确认={confirmation} 如何调用此方法 我尝试了很多代码,但得到了400401404错误 最后,我通过使用基本身份验证在chrome中获得了200个状态码。现在的问题是,我不知道如何传递基本身份验证和头参数的值 请帮帮我 NSString *UrlWithPar

我是IOS开发新手。 我正在请求web服务,该服务具有POST方法,并在标头中接受两个参数密码和确认。 这是url 这就是方法 api/Account/ChangePassword?密码={password}&确认={confirmation}

如何调用此方法 我尝试了很多代码,但得到了400401404错误

最后,我通过使用基本身份验证在chrome中获得了200个状态码。现在的问题是,我不知道如何传递基本身份验证和头参数的值 请帮帮我

        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];

`如果您收到401错误,则表示您未经授权。API调用似乎很奇怪,因为您没有发送任何授权信息。如果不是您的服务,请尝试首先从浏览器、CLI或任何REST客户端检查此API。如果是您的服务器,请检查服务器日志,了解它如何尝试路由您的呼叫。例如,问题可能出在URL编码中

试试使用,它是最棒的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);
}];

向我们展示您的代码,您是如何发送HTTP请求的?您是否像下面这样正确绑定了密码和确认值NSString*temp=[NSString stringWithFormat:@“api/Account/ChangePassword?password=%@&Confirmation=%@”,pw,confirm]]您是否尝试删除了“[serviceRequest setValue:@“application/json”forHTTPHeaderField:@“content type”];” ? 毕竟你没有发送json内容…我尝试了显示404错误以及支持json响应的方法我在NSString*authValue=[NSString stringWithFormat:@“Basic%@”,check]之前添加了这个;[serviceRequest setValue:HttpHeaderField的authValue:@“授权”];检查字符串是用户名和密码,使用base64格式encodedI,这是真的。尝试这个工具,它允许测试请求,并设置身份验证头也-它应该在浏览器中工作。它什么时候能在那里工作,然后转到IOS我不熟悉AFN网络。我正在学习这一点,但这部分对我来说很棘手。这是发出任何和所有URL请求的最简单方法:)你熟悉如何在XCode中安装第三方库吗?是的,我可以安装第三方代码,我也尝试过使用Afnetworking,但没有得到我的运气。你能提供我了解Afnetworking的链接吗?我有链接到AFREPO,它有各种各样的工作示例。如果你不明白,我会看看这里