2

基本認証の問題に直面していますが、この問題が発生する理由を理解できません。基本認証では、応答コード200、つまり認証が成功していますが、iOSアプリケーションで応答データが正しく取得されない場合があります。ブラウザにリクエストURLを貼り付けると(iPhoneサファリブラウザでも)、常に応答が返されますが、iOSアプリケーションで常に応答が得られないのはなぜですか。

私はグーグルで他の多くの問題を経験しました、そして例えばlink1のスタックオーバーフロー、しかし運がありません。

私のコードは以下の通りです:

//in implemetation file
-(void)basicAuthentication{
    .
    .
    NSURL *url = [NSURL URLWithString:authenticationUrl]; 

        NSMutableString *loginString = (NSMutableString*)[@"" stringByAppendingFormat:@"%@:%@", @"username",@"password"];  

        NSString *authHeader = [@"Basic " stringByAppendingFormat:@"%@", loginString];

        NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
        [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
        [request setURL:url];
        [request setHTTPMethod:@"GET"]; 
        [request addValue:authHeader forHTTPHeaderField:@"Authorization"];

        NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    myData = [[NSMutableData data] retain];

    }

    //Delegate method called when the connection receives data
    /*
     * Callback, called when ever there is more response data read
     */
    -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
    {
        [myData appendData:data];
    }

    //in .h file
    @interface TestConnectionManager : NSObject <UIAlertViewDelegate,NSURLConnectionDelegate>{
        id <TestConnectionManagerDelegate>delegate;
        NSMutableData *myData;
    .
    .
    .
    }
4

1 に答える 1

0

私は同様の問題についてほぼ直面しており、私が提案しようとしている一時的な解決策を得ました。しかし、これがあなたのケースにどれだけ役立つかはわかりません。

didReceiveDataメソッド内に受信したデータのログメッセージを入れました。受信したデータを入れられない場合は、データ長のログを取ることができます。

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    NSLog(@"data:%d",[data length]);
    [myData appendData:data];
    NSLog(@"myData:%d",[myData length]);
}
于 2012-10-08T03:15:29.120 に答える