Вопрос

возникла небольшая проблема с получением содержимого XML-файла (с использованием TouchXML).

Мой первый запрос работает очень хорошо, выглядит примерно так:

NSString *url = [NSString stringWithFormat:STATION_ID, latitude, longtitude];
CXMLDocument *rssParser = [[CXMLDocument alloc] initWithContentsOfURL:[NSURL URLWithString:url] options:0 error:nil];
NSLog(@"%@",rssParser);

поэтому этот журнал дает мне полный XML-файл.

после этого в другом методе я пробую то же самое:

NSString *url = [NSString stringWithFormat:WEATHER_URL, [positionInformation objectForKey:@"stationId"]];
CXMLDocument *rssParser = [[CXMLDocument alloc] initWithContentsOfURL:[NSURL URLWithString:url] options:0 error:nil];
NSLog(@"%@", rssParser);

но журнал, который я получаю, равен (ноль).Войдя в строку URL-адреса, я получаю правильный URL-адрес без пробелов или чего-то еще. Например, журнал URL-адресов выглядит так:

NSString *url = [NSString stringWithFormat:WEATHER_URL, [positionInformation objectForKey:@"stationId"]];
NSLog(@"%@", url);

Результат в консоли отладчика:

http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=KCASUNNY19

просмотр этого файла в моем браузере кажется нормальным.Кто-нибудь знает, что происходит?????

Я также попытался сначала получить содержимое этого URL-адреса с помощью stringWithContentsOfURL, но это тоже не сработало.

Это было полезно?

Решение

У этого парня была такая же проблема: http://www.iphonedevsdk.com/forum/iphone-sdk-development/15963-problem-initwithcontentsofurl.html.Похоже, API в Weather Underground ожидает пользовательский агент и возвращает HTTP-ответ 500, когда его не видит.Вы можете использовать -initWithData:options:error: в CXMLDocument для передачи данных, которые вы получаете с помощью NSMutableURLRequest.

Другие советы

Вам следует попробовать использовать аргумент ошибки initWithContentsOfURL:options:error:.Создайте *объект NSerror и передайте его следующим образом:

NSError      *error;
CXMLDocument *rssParser = [[CXMLDocument alloc] initWithContentsOfURL:[NSURL URLWithString:url] options:0 error: &error];

Если вы не получили объект rssParser, проверьте эту ошибку.

я скопировал содержимое этого XML-файла на свой сервер и изменил URL-путь.это работает правильно, поэтому я думаю, что есть проблема с чтением этого файла ".asp".

хм.но его XML-содержимое странно.

//редактировать:я создал на своем сервере небольшой php-файл, который возвращает содержимое файла «asp»:

<?php
  echo file_get_contents("http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=KCASANFR70");
 ?>

чтение содержимого моего сценария работает, но этот обходной путь — не то, что мне нужно.

ох блин =/

Вы уверены, что ваша строка URL-адреса правильно закодирована, поэтому вопросительный знак интерпретируется как запрос?Возможно, вы захотите использовать dataUsingEncoding или stringUsingEncoding на вашем URL-адресе, прежде чем использовать его для инициализации rssReader.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top