从C#代码更新文档ID中的斜杠斜杠的CouchDB文档

时间:2011-08-13 19:23:10

标签: .net couchdb

我创建了CouchDB数据库,文档ID中包含斜杠(/)。 我正在尝试从C#代码更新数据库,我尝试了几个CouchDB库,并且还使用了普通的-httpWebRequest类,但是我失败了因为.NET Uri类转义了字符串传递给它。 我需要像这样创建一个Uri:

http://myserver.com/db/firstpart%2Fsecondpart

将始终由.NET Uri类转义为

http://myserver.com/db/firstpart/secondpart

这会导致CouchDB将文档内容视为具有ID firstpart的文档附件,而不是将文档视为id为firstpart / secondpart的文档的内容。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我想知道你是否可以编码%2f部分本身,以便.Net将解码一次,然后将正确编码的版本发送到服务器?

%字符编码为%25,因此请尝试以下网址:

http://myserver.com/db/firstpart%252Fsecondpart

如果确实有效,也许您可​​以通过调用System.Web.HttpUtility.UrlEncode来改进代码。

更好的解决方案是检查API以禁用取消转义。这对我来说就像一个API错误。如果我告诉框架one/two%2fthree那么是什么让它有权再次猜测我?但那是HTTP的世界。 (我听说Apache httpd反向代理是一个噩梦。)

相关问题