Вопрос

Я использую пакет 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];
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top