Objective-C и ASIHTTPRequest - проблемы строки ответа - PullRequest
2 голосов
/ 16 июня 2009

Я использую пакет ASIHTTPRequest для отправки некоторых данных с iPhone на мой сервер, а затем при сохранении на сервере я получаю ответ (строку), содержащую URL-адрес, который я хочу загрузить в веб-просмотр. Теоретически это должно быть просто, но на самом деле я не могу получить эту работу вообще. Кажется, некоторые проблемы с кодированием строки, я думаю. Если я получу ответ, я думаю, что все будет в порядке, но он просто отказывается загружаться в веб-просмотр.

Это мой запрос (играл со сжатием и кодировкой):

NSURL *url = [NSURL URLWithString:@"xxx"];
ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];
[request setFile:imageData forKey:@"photo"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
[request setAllowCompressedResponse:NO];
[request setDefaultResponseEncoding:NSUTF8StringEncoding];//NSISOLatin1StringEncoding   
[request start];

А это мой ответчик:

- (void)requestDone:(ASIHTTPRequest *)request{
    NSString *response = [request.responseString];
    NSLog(@"web content: %@", response);
    [webView loadSite:response];
}

NSLog выглядит нормально, но сайт просто не загружается. Попытался отправить переменную NSString, такую ​​как NSString * temp = @ "http://www.google.se";, в функцию loadSite, и это прекрасно работает, поэтому проблема не в самой загрузке.

Сильно оценит любые указатели или поможет в джунглях obj-c:)

/ f

Ответы [ 3 ]

2 голосов
/ 16 июня 2009

Попробуйте сделать следующее:

NSString *response = [[request responseString] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

Он обрезает все пробелы и символы новой строки.

1 голос
/ 16 июня 2009

получается, что ответ автоматически заканчивается \ n (новый перевод строки). это не показывалось при регистрации переменной, ни при записи ее в текстовое поле, но при преобразовании его в объект urlobject и регистрации того, что я нашел его. отладка еще раз окупается;)

0 голосов
/ 16 июня 2009

woups, мой ответчик, конечно:

- (void)requestDone:(ASIHTTPRequest *)request{
    NSString *response = [request responseString];
    NSLog(@"web content: %@", response);
    [webView loadSite:response];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...