gpt4 book ai didi

ios - 使用带有身份验证的 IOS 的 Restful API 调用

转载 作者:可可西里 更新时间:2023-11-01 03:47:44 24 4
gpt4 key购买 nike

我正在开发一个使用 prestashop API 调用 RESTful API 的应用程序。我是 IOS 的新手,我在 android 中编写了相同的方法:

    InputStream is = null;
try {

DefaultHttpClient client = new DefaultHttpClient();

/* adding credentials as it is RESTful call */
String username = "xyz";
String password = "";
client.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),new UsernamePasswordCredentials(username, password));
// HTTP get request
HttpGet get = new HttpGet("http://www.example.com/api/");
HttpResponse responseGet;
responseGet = client.execute(get);
is = responseGet.getEntity().getContent();
} catch (ClientProtocolException e) {
Log.e("HTTP Request","Client Protocol exception" );
} catch (IOException e) {
Log.e("HTTP Request","IO exception" );
}

它在 Android 上运行完美。对于 IOS,我使用了这种编码,但我没有从服务器获取数据。

NSString *userName = @"XYZ";
NSString *password = @"";
//setting the string of the url taking from appliance IP.

NSString *urlString = @"http://www.example.com/api/";

NSMutableURLRequest *request= [[NSMutableURLRequest alloc] init];

[request setURL:[NSURL URLWithString:urlString]];

[request setHTTPMethod:@"GET"];

NSString *str1 = [NSString stringWithFormat:@"%@:%@",userName,password];

NSLog(@" str1 %@", str1);

[request addValue:[NSString stringWithFormat:@"Basic %@",str1] forHTTPHeaderField:@"Authorization"];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSString *str = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"str: %@", str);

请告诉我我做错了什么并提供任何解决方案。

谢谢!

最佳答案

您可以通过这种方式构建 URL 字符串,它应该可以工作:-

NSString *str1 = [NSString stringWithFormat:@"http://%@:%@@www.example.com/api",userName,password];

我认为不需要使用 HTTP header 字段

关于ios - 使用带有身份验证的 IOS 的 Restful API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12704657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com