10 Stimmen

HTTP-Authentifizierung auf dem iPhone

Ich hoffe, dass mir jemand bei einer Frage helfen kann, die ich in Bezug auf die Authentifizierung in Xcode habe Grundsätzlich habe ich einen MS Sharepoint Server, der XML zurückgibt. Im Nachdem dieses Stück Code für die Authentifizierung, aber es ist unzugänglich.

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

NSMutableURLRequest *request= [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];

NSString *str1 = [NSString stringWithString:@"username:password"];
NSData *myDate = [str1 dataUsingEncoding:NSUTF8StringEncoding];
NSString *str2 = [Base64 encode:myDate];
NSLog(@"%@ str1 %@", str2,str1);

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

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *str = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"%@", str);

Ich gebe zwar die richtigen Anmeldedaten an, aber der Server akzeptiert sie nicht. Er gibt zurück

401 - Unbefugt: Der Zugriff wird aufgrund ungültiger Anmeldeinformationen verweigert.

Kann jemand helfen?

8voto

more tension Punkte 3262

Utilice NSURLConnection 's -connection:didReceiveAuthenticationChallenge: Delegate-Methode, um zu erkennen, wann eine Authentifizierung erforderlich ist. Kurz gesagt, Sie werden NSURLCredential-Instanzen verwenden, um die Authentifizierung mit der Anfrage zu verbinden.

Die Dokumentation bietet einen guten Überblick und ein Codebeispiel:

Antwort auf eine Authentifizierungsanfrage

7voto

Alex Reynolds Punkte 93906

Erwägen Sie die Verwendung der Open Source ASIHTTPRequest Klasse, denn sie macht authentifizierte Anfragen ziemlich einfach.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X