45

使用する AFNetworking 2.0 で AFHTTPClient が見つかりません:

AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://examplewebsite.com]];

[client setAuthorizationHeaderWithUsername:@"username" password:@"password"];

AFNetworking 2.0 でどのように管理する必要がありますか?

4

3 に答える 3

6

@gimenete が言及しているように、@titaniumdecoy クレデンシャル アプローチを使用するとマルチパート リクエストは失敗します。これは、これがチャレンジ ブロックに適用され、AFNetworking の現在のバージョンに問題があるためです。資格情報アプローチを使用する代わりに、認証を NSMutableRequest ヘッダーに埋め込むことができます

    NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"PUT"  URLString:path parameters:myParams constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
                    [formData appendPartWithFileData:imageData name:imageName fileName:imageName mimeType:@"image/jpeg"];
            } error:&error];    
    NSString *authStr = [NSString stringWithFormat:@"%@:%@", [self username], [self password]];
    NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding];
    NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64EncodedString]];
    [request setValue:authValue forHTTPHeaderField:@"Authorization"];

NSData+Base64.h やMatt Gallaghers pre ARC BASE64 ソリューションの .m ファイルなど、サードパーティの BASE64 エンコーディング ライブラリを使用する必要がある場合

于 2014-07-12T13:01:58.480 に答える