요청에 기본 HTTP 인증 헤더를 추가하고 있지만 AuthString을 Base64로 인코딩해야합니다. 정보, 나는 didReceiveAuthenticationChallenge 생산 과도한 401 오류로 인해 사용할 수 없습니다.iPhone 3.2 Base64 인코딩
아래 코드는 iOS 4.2에서는 제대로 작동하지만 iOS 3.2에서는 작동하지 않습니다 (지원하고 싶습니다). 나는있는 NSData가 'base64Encoding'에 응답하지 않습니다 경고를 얻을 수 위의 내 코드의 첫 번째 줄에서
NSString *authString = [[[NSString stringWithFormat:@"%@:%@", user, password] dataUsingEncoding:NSUTF8StringEncoding] base64Encoding];
authString = [NSString stringWithFormat: @"Basic %@", authString];
NSMutableURLRequest* request =
[[NSMutableURLRequest alloc] initWithURL: url
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval: 30];
[request setValue: authString forHTTPHeaderField: @"Authorization"];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
. 내가있는 NSString (authString를) 변환이 클래스를 사용하는 방법을 모른다 ...... http://cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html
그러나 :
그래서 나는 여기에서 사용자 정의 클래스을 NSData + Base64로 다운로드했습니다. 도와주세요?! NSString *authString = [[[NSString stringWithFormat:@"%@:%@", user, password] dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString];
그러나 나는 다음과 같은 메시지 수 :
나는 다음 코드 줄을 수정해야한다고 생각 응용 프로그램을 종료
* 인해 캐치되지 않는 예외 'NSInvalidArgumentException', 이유에 '- [NSConcreteMutableData base64EncodedString ] : 인스턴스로 전송 된 인식 할 수없는 선택자
가져 오기 또는 다른 것을 놓친 적이 있습니까?
P. 이것은 여기에 나의 첫 번째 질문입니다, 그래서 나에게 쉽게 가라!
이 코드 줄을 이와 같이 변경 하시겠습니까? NSString * authString = [[[NSString stringWithFormat : @ "% @ : % @", 사용자, 암호] dataUsingEncoding : NSUTF8StringEncoding] dataFromBase64String]; 또는 이와 유사합니다 NSString * authString = [[[NSString stringWithFormat : @ "% @ : % @", 사용자, 암호] dataUsingEncoding : NSUTF8StringEncoding] base64EncodedString]; –
정답! 나는 하나의 프로젝트가 다른 프로젝트를 참조하도록했다. 보조 프로젝트에서 작동하도록 만들지는 못했지만 #import "NSData + Base64.h"를 기본 프로젝트 응용 프로그램 접두사 헤더 파일 (.pch)에 넣고 기본 프로젝트에 클래스를 추가하면 처리 할 수있었습니다. . 당신의 도움을 주셔서 감사합니다. –