2011-01-20 2 views
2

Apache CouchDB требует, чтобы ключ был заключен в двойные кавычки: ", однако при выходе из получаемого результата nsurl (null) при записи на консоль и, соответственно, в результате ответа (null).Двойные кавычки в запросе NSURL

Вот код:.

NSURL *url = [[NSURL alloc] initWithString:@"http://username:[email protected]:5984/points/_design/user/_view/where?key=\"m0rph3v5\""]; 

Я также попытался использовать% 22 вместо двойных кавычек, которые не работают либо

Как я могу добавить успешно двойные кавычки в запросе url?

ответ

2

Оказывается, он имел отношение к используемой stringWithFormat, которая пыталась дешифровать% 22 как переменную, и, таким образом, завинчивать URL-адрес.

Использование NSMutableString и добавления ключевой переменной оказалось, работает нормально :)

+0

Если вы хотите литерал% в строке формата, используйте '%% '. НТН! – Wevah

+0

Это сработало и для меня. Благодаря! – Fengson

1

Использование% 22 работает для меня. Я получаю правильный объект NSURL, используя следующую строку кода:

NSURL *url = [[NSURL alloc] initWithString:@"http://username:[email protected]:5984/points/_design/user/_view/where?key=%22m0rph3v5%22"]; 

Странным является то, что это работает, не спасаясь от знака @.
IIRC также должен быть экранирован (% 40).

+0

я действительно получить действительный объект URL-адрес с этим, но результаты URL-адрес в следующем: HTTP: // имя пользователя: пароль @ GCG. cloudant.com:5984/points/_design/user/_view/where?key=20rph3v52, возвращая плохую просьбу от самого couchdb, так как «m0rph3v5» заканчивается 20rph3v52 – M0rph3v5

Смежные вопросы