我正在构建我的第一个IOS应用程序,我目前正在将我的应用程序与我的Prestashop网站集成。我已经从数据库中获取了大量数据,但我从他们的API中使用搜索方法的运气却少了。
我已成功调用REST API并通过服务器进行身份验证。我收到的响应状态代码为200,所以一切看起来都不错,但是我从服务器收到的数据是HTML表单中我网站的主页,而不是带有搜索结果的XML文件。
下面我将列出我用来访问Prestashop服务器的一些代码部分
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://www.******.com:443/api/search/?query=%@&language=1",searchTerm]];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self];
这是我用来设置与Prestashop服务器的连接的方法
-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge;
{
NSLog(@"Test 1.5");
[self clearCookiesForURL];
if([challenge previousFailureCount]==0)
{
NSURLCredential *credential = [NSURLCredential credentialWithUser:@"(I'm omitting the credential key but it does work)" password:@"" persistence:NSURLCredentialPersistenceForSession];
NSLog(@"Credential : %@",credential);
//NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
[challenge.sender useCredential:credential forAuthenticationChallenge:challenge];
} else{
[[challenge sender] cancelAuthenticationChallenge:challenge];
}
}
这是我的身份验证方法。我已经实例化了所有其他连接方法(canAuthenticateAgainstProtectionSpace,didReceiveResponse,didReceiveData等),并且它们都被调用并正常工作。
NSLog(@"Data After : %@",responseData);
NSString *tempString;
tempString = [[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding];
NSLog(@"String : %@",tempString);
这是我用来将从服务器获取的数据转换为字符串的代码部分(我认为它将是XML,而不是HTML)
Here is a screenshot of the debug log showing that I'm getting an HTML File
有谁能看到我在这里做错了什么?任何帮助将不胜感激!