[英]Update CouchDB document which hash slash in the doc id from C# code
我已经使用文档 ID 中带有斜杠 (/) 的文档创建了 CouchDB 数据库。 I'm trying to update the database from C# code, I've try several CouchDB libs and also using plain-old-HttpWebRequest class but I fail with all because .NET Uri class escape the string pass into it. 我需要像这样创建一个 Uri:
http://myserver.com/db/firstpart%2Fsecondpart
这将始终被 .NET Uri class 转义到
http://myserver.com/db/firstpart/secondpart
这导致 CouchDB 将文档内容视为 ID 为 firstpart 的文档的附件,而不是将文档视为 ID 为 firstpart/secondpart 的文档的内容。
有任何想法吗?
我想知道您是否可以对%2f
部分本身进行编码,以便.Net 将其解码一次,然后将正确编码的版本发送到服务器?
%
字符编码为%25
,因此试试这个 URL:
http://myserver.com/db/firstpart%252Fsecondpart
如果这确实有效,也许您可以通过调用System.Web.HttpUtility.UrlEncode来改进代码。
更好的解决方案是检查 API 以禁用取消转义。 这对我来说就像一个 API 错误。 如果我告诉框架one/two%2fthree
那么是什么赋予了它对我进行第二次猜测的权利? 但这就是 HTTP 的世界。 (我听说 Apache httpd 反向代理是一个噩梦。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.