2013-03-11 3 views
0

Я использую bigcommerce api в iphone для извлечения данных из этого, поэтому я делаю это с помощью синтаксического анализа xml, но чтобы получить список заказов, он запрашивает логин на сайте bigcommerce, а затем анализирует данных, если кто-нибудь поможет мне в этом, то я буду очень благодарен, пожалуйста, сообщите мне через XML разбора, как мы можем отправить учетные данные, а затем нажмите на URL, чтобы разобрать данные .....bigcommerce api на iphone

Thankyou

я Я пишу этот код

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
// Add the navigation controller's view to the window and display. 
[self.window addSubview:navigationController.view]; 
[self.window makeKeyAndVisible]; 

// Override point for customization after application launch. 
NSString *string=[NSString stringWithFormat:@"https://www.labradorhometraining.com/api/v2"]; 
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:string]]; 

// NSString *dataString = [NSString stringWithFormat:@"{\"screenName\":\"%@\",\"password\":\"%@\",\"pushToken\":\"%@\",\"deviceType\":\"%@\"}", Screentxtf.text,passtxtf.text, str, deviceType]; 

[request setRequestMethod:@"GET"]; 
[request appendPostData:[string dataUsingEncoding:NSUTF8StringEncoding]]; 
// Basic YWRtaW46cGFzc3dvcmQ= 
[request addRequestHeader:@"Content-Type" value:@"application/xml"]; 
[request addRequestHeader:@"Authorization: Basic ZGVtb2tleTpkZW1vdG9rZW4= " value:[NSString stringWithFormat:@"%@ %@",@"api", @"c275ab4076f87"]]; 
[request setUseSessionPersistence:NO]; 
[request setUseCookiePersistence:NO]; 
[request setCacheStoragePolicy:ASICacheForSessionDurationCacheStoragePolicy]; 
[request setDelegate:self]; 
[request startAsynchronous]; 
return YES; 
} 

и это в контроллер корневого вида

-(void)gototselect{ 
NSString *string=[NSString stringWithFormat:@"https://www.labradorhometraining.com/api/v2/orders.xml"]; 
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:string]]; 

// NSString *dataString = [NSString stringWithFormat:@"{\"screenName\":\"%@\",\"password\":\"%@\",\"pushToken\":\"%@\",\"deviceType\":\"%@\"}", Screentxtf.text,passtxtf.text, str, deviceType]; 

[request setRequestMethod:@"PUT"]; 
// [request appendPostData:[string dataUsingEncoding:NSUTF8StringEncoding]]; 
[request addRequestHeader:@"Authorization" value:[NSString stringWithFormat:@"%@ %@",@"api", @"c2714076f87"]]; 
[request allowCompressedResponse]; 
[request setUseSessionPersistence:NO]; 
[request setUseCookiePersistence:NO]; 
[request setCacheStoragePolicy:ASICacheForSessionDurationCacheStoragePolicy]; 
[request setDelegate:self]; 
[request startAsynchronous]; 

} 

ответ

1

Я не имею ни малейшего представления об API ASIHTTPRequest, и я никогда не использовал его в своей карьере. Но при использовании обычной Objective-C я разделить код для того, как вы аутентификации запроса HTTP,

// Setup NSURLConnection 
NSURL *URL = [NSURL URLWithString:url]; 
NSURLRequest *request = [NSURLRequest requestWithURL:URL 
            cachePolicy:NSURLRequestUseProtocolCachePolicy 
           timeoutInterval:30.0]; 

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
[connection start]; 
[connection release]; 

// NSURLConnection Delegates 
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { 
if ([challenge previousFailureCount] == 0) { 
    NSLog(@"received authentication challenge"); 
    NSURLCredential *newCredential = [NSURLCredential credentialWithUser:@"USER" 
                   password:@"PASSWORD" 
                  persistence:NSURLCredentialPersistenceForSession]; 
    NSLog(@"credential created"); 
    [[challenge sender] useCredential:newCredential forAuthenticationChallenge:challenge]; 
    NSLog(@"responded to authentication challenge");  
} 
else { 
    NSLog(@"previous authentication failure"); 
} 
} 

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { 
... 
} 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
... 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 
... 
} 

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { 
... 
} 

выше коды я скопировал из NSURLConnection and Basic HTTP Authentication in iOS ссылки. Также я хочу поделиться с вами еще одной ссылкой. Обратитесь к apple doc для запроса HTTP http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/URLLoadingSystem/Articles/AuthenticationChallenges.html И этот пост http://www.cocoanetics.com/2010/12/nsurlconnection-with-self-signed-certificates/ .. вы получите много информации и тактики об этой работе.

+0

спасибо за помощь – Priyanka

+0

@Priyanka, Welcome. – Tirth

+0

@Priyanka, извините, я не могу дать вам свой идентификатор электронной почты, но вы можете встретиться со мной здесь http://chat.stackoverflow.com/rooms/682/iphone-ipad – Tirth

Смежные вопросы