цель c: получение XML-файла со строкой запроса

Итак, я создал синтаксический анализатор XML, используя учебник здесь: http://www.codeproject.com/Articles/248883/Objective-C-Fundamentals-NSXMLParser

Моя проблема в том, что файл XML, который я вызываю, требует параметра строки запроса. Пример URL-адреса будет выглядеть примерно так:

http://domain.com/xml.php?id=00idcode00

Без id= файл XML просто возвращает один элемент XML <error>No id specified</error>; с указанным идентификатором файл XML возвращает 50 нечетных элементов XML.

Моя проблема в том, что независимо от того, что я пытаюсь сделать, файл XML всегда возвращает <error>. Как заставить NSURL использовать строку запроса?

Вот мой код:

NSString *someId = @"00idcode00";
NSString *urlString = [NSString stringWithFormat:@"http://domain.com/xml.php?id=%@", someId];
NSURL *url = [NSURL URLWithString:urlString];

parser=[[NSXMLParser alloc] initWithContentsOfURL:url];
[parser setDelegate:self];
[parser parse];

NSLog(@"query: %@",[url query]);

И этот NSLogs следующее:

Started element error
Found an element named: error with a value of: No id specified.
query: id=00idcode00

Последняя строка, в которой я вывожу query из url, подразумевает, что NSURL имеет правильную строку запроса, но ответ файла XML предполагает, что NSURL не использует строку запроса.

Кто-нибудь может помочь?


person Jimmery    schedule 31.10.2012    source источник


Ответы (1)


Сначала создайте строку, затем URL.

NSString *someId = @"00idcode00";
NSString *urlString = [NSString stringWithFormat:@"http://domain.com/xml.php?Id=%@", someId];
NSURL *url = [NSURL URLWithString:urlString];

И ошибка указывает, что параметр запроса Id, а не id.

person rmaddy    schedule 31.10.2012
comment
Строка сообщения, отображаемая в теге <error>, носит только описательный характер. - person Jimmery; 31.10.2012
comment
Тогда это плохое сообщение. URL-адреса чувствительны к регистру (кроме хоста и домена). Если параметр должен быть id, тогда в сообщении должно быть указано id, а не Id. В любом случае, зарегистрируйтесь url, затем скопируйте URL-адрес в свой браузер, и что вы получите? - person rmaddy; 31.10.2012
comment
При регистрации URL-адреса я получаю url: http://domain.com/xml.php?id=00idcode00, но строка запроса все еще не используется, и вместо данных я все еще получаю тег <error>. - person Jimmery; 01.11.2012
comment
Возможно проблема на стороне сервера. Что происходит, когда вы вводите этот URL-адрес в браузере вашего компьютера? - person rmaddy; 01.11.2012
comment
Я получаю 50 нечетных элементов, которые я ожидал. - person Jimmery; 01.11.2012