Использование NSURL с веб-службой PHP, которая использует скобки в своем запросе get - PullRequest
1 голос
/ 02 февраля 2011

Я пишу приложение для iPhone, которое должно получать данные из веб-службы.В этом сервисе существует вероятность того, что одна и та же переменная имеет несколько значений, и эта переменная доступна с помощью скобок [].(Я не разработчик PHP, но я понимаю, что эта схема не является чем-то необычным для служб PHP.)

Поэтому пример запроса может выглядеть следующим образом:

example.com / service.php? id [] = 1 & id [] = 2

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

NSString *string = @"http://example.com/service.php?id[]=1&id[]=2";
NSURL *url = [NSURL URLWithString:string];
NSMutableURLRequest *networkRequest = [NSMutableURLRequest requestWithURL:url];
...

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

example.com / service.php? id% 5B% 5D = 1 & id% 5B% 5D =2

В результате мой запрос не имеет доступа к информации, которую я хочу.Есть ли способ запретить NSURL кодировать мой URL, чтобы он мог получить доступ к этому веб-сервису?

Ответы [ 3 ]

1 голос
/ 03 февраля 2011

В моем случае выяснилось, что общение с владельцем сервиса выявило нерегулярное поведение на сервере, которое вызвало проблему, но я приписывал это обработке строк NSURL.Мои извинения и спасибо за ваши ответы.

0 голосов
/ 02 февраля 2011

Возможно, просто избежите их:

NSString *string = @"http://example.com/service.php?id\[\]=1&id\[\]=2";

Возможно, это просто закончится тем, что URLE закодирует и обратную косую черту, но это того стоит.

0 голосов
/ 02 февраля 2011

У меня была такая проблема в моем приложении, я решил кодировать строку URL перед построением URL. Так что я думаю, тебе нужно сделать это так

NSString *string = @"http://example.com/service.php?id%5B%5D=1&id%5B%5D=2";
NSURL *url = [NSURL URLWithString:string];
NSMutableURLRequest *networkRequest = [NSMutableURLRequest requestWithURL:url];

Пожалуйста, обратитесь к ссылку для более ifno.

...