Objective-C и ASIHTTPRequest - проблемы строки ответа
-
05-07-2019 - |
Вопрос
Я использую пакет 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
Решение
Попробуйте сделать следующее:
NSString *response = [[request responseString] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
Он обрезает все пробелы и символы новой строки.
Другие советы
получается, что ответ автоматически заканчивается \ n (новым переводом строки). это не показывалось при регистрации переменной, ни при записи ее в текстовое поле, но при преобразовании его в объект urlobject и регистрации того, что я нашел его. отладка еще раз окупается;)
Вау, мой ответчик, конечно:
- (void)requestDone:(ASIHTTPRequest *)request{
NSString *response = [request responseString];
NSLog(@"web content: %@", response);
[webView loadSite:response];
}