2011-01-20 33 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

原来,它与我尝试将%22作为变量加密并因此搞砸了url的stringWithFormat有关。

使用的NSMutableString和附加的关键变量竟然能正常工作:)

+0

如果你想在格式化字符串中使用字面值%,可以使用'%% `。 HTH! – Wevah 2011-01-26 11:24:17

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,自从“m0rph3v5”结束以来,从couchdb本身返回一个错误的请求20rph3v52 – M0rph3v5 2011-01-20 13:24:47