Тип utf-8 не принимает> 129 байт при загрузке nsurlconnection - PullRequest
0 голосов
/ 21 января 2012

Может ли кто-нибудь помочь мне в поиске решения этой проблемы?загруженный контент iws> 2500 байт, но при преобразовании nsstring возвращает пустое.

   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 Ответ

2 голосов
/ 21 января 2012

HTTP-код ответа 204 означает отсутствие содержимого, responseData не будет содержать ничего, поэтому из этого следует, что strUserResponse не будет содержать необходимые данные.

Код возврата 204 означает:

Сервер получил запрос, но информация для отправки отсутствует назад, и клиент должен остаться в том же виде документа. Это в основном, чтобы разрешить ввод для сценариев без изменения документа на в то же время.

Не игнорируйте коды возврата http.

См. Определения ответов http: Определения кодов состояния

Кроме того, для отладки чего-либо подобного можно использовать отладчик и консоль или NSLog для проверки обратного потока, в данном случае это значение responseData.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...