2012-01-21 4 views
0

누구든지이 문제에 대한 해결책을 찾을 수 있습니까? 다운로드 한 내용은 iws> 2500 바이트이지만 변환되는 동안 nsstring은 비어있는 것을 반환합니다.utf-8 유형은 nsurlconnection을 다운로드하는 동안 129 바이트를 초과하지 않습니다.

NSMutableString *postString = [NSMutableString string]; 
    // NSMutableString *postString = [[NSMutableString alloc] init]; 
[postString appendFormat:@"username=%@",[strUsrName dataUsingEncoding:NSUTF8StringEncoding]]; 
[postString appendFormat:@"&password=%@",[strPasswrd dataUsingEncoding:NSUTF8StringEncoding]]; 
    [postString appendFormat:@"&client_assertion_type=%@",[@"JWT"dataUsingEncoding:NSUTF8StringEncoding]]; 
[postString appendFormat:@"&client_assertion=%@",[strAppTknContent dataUsingEncoding:NSUTF8StringEncoding]]; 
    [postString appendFormat:@"&spEntityID=%@",[@"http://localhost:8080/opensso"dataUsingEncoding:NSUTF8StringEncoding]] ; 

NSHTTPURLResponse *response = nil; 
    NSError *error = nil;   
    NSMutableURLRequest *theRequest = [[NSMutableURLRequest alloc] initWithURL:nsurl]; 
    NSData* dataRequest = [postString dataUsingEncoding: NSISOLatin1StringEncoding ]; 
    // NSData* dataRequest = [NSData dataWithBytes:strRequest]; 
    [theRequest setHTTPMethod: @"POST"]; 
    [theRequest setHTTPBody: dataRequest]; 
    [theRequest setURL:nsurl]; 

    //// set headers 
    NSString *contentType = [NSString stringWithFormat:@"text/plain"]; 
    [theRequest setValue:contentType forHTTPHeaderField:@"Content-Type"]; 
    NSString *acceptType = [NSString stringWithFormat:@"application/json"]; 
    [theRequest setValue:acceptType forHTTPHeaderField:@"accept"]; 
    [theRequest setTimeoutInterval:3.0]; 
    [theRequest setCachePolicy:NSURLRequestReturnCacheDataElseLoad];   



NSData *responseData =[NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error]; 
NSString *strUserResponse =[[NSString alloc]initWithData:responseData encoding:NSISOLatin1StringEncoding]; 
    int status =[response statusCode ] ; 

staus : 204 만 strUserResponse이

+1

'dataRequest'에는 실제로 무엇이 들어 있습니까? 'postString'에 문자열을 추가 할 때 문자열을 UTF-8로 변환하고이를 Latin-1로 변환하면 데이터가 잘리는 것은 놀랄 일이 아닙니다. – sbooth

+2

204는 "내용 없음"입니다. 어떻게 responseData를 기대할 수 있습니까? –

답변

2

204 HTTP 응답 코드 비어는 아무 내용도, strUserResponse 원하는 데이터를 포함하지 않습니다 다음 있도록 responseData 아무것도 포함하지 않는 것을 의미합니다.

204 리턴 코드는 의미

서버는 요청을받은하지만 다시 보낼 정보가 없습니다, 클라이언트는 같은 문서보기를 유지해야한다. 이것은 주로 에서 문서를 변경하지 않고 스크립트에 대한 입력을 허용하기 위해 입니다.

http 리턴 코드를 무시하지 마십시오.

는 HTTP 응답의 정의를 참조하십시오 Status Code Definitions 또한

, 당신은 responseData의 값이 무엇인지,이 경우, 스트림을 확인하기 위해 디버거 및 콘솔 또는 NSLog를 사용하여 다음과 같이 뭔가를 디버깅.

관련 문제