【发布时间】:2010-10-21 08:09:13
【问题描述】:
我想向http://example.com/%2F 发送一个HTTP GET。我的第一个猜测是这样的:
using (WebClient webClient = new WebClient())
{
webClient.DownloadData("http://example.com/%2F");
}
不幸的是,我可以看到实际在网络上发送的是:
GET // HTTP/1.1
Host: example.com
Connection: Keep-Alive
所以http://example.com/%2F 在传输之前被翻译成http://example.com//。
有没有办法实际发送这个 GET 请求?
OCSP 协议要求在通过 HTTP/GET 使用 OCSP 时发送 base-64 编码的 url 编码,因此需要发送实际的 %2F 而不是“/”以符合要求。
编辑:
这里是OCSP协议标准的相关部分(RFC 2560附录A.1.1):
使用GET方法的OCSP请求构造如下:
GET {url}/{url-encoding of base-64 encoding of the DER encoding of the OCSPRequest}
我对这方面的其他解读持开放态度,但我看不出还有什么意思。
【问题讨论】:
-
对我来说听起来像是 OCSP 协议中的一个错误(或者,对它的误解)。
-
我建议向微软报告这个错误
-
@knocte:已报告并修复。请参阅 Bradley Gaingers 的回答。
-
哦,对了,打扰了
-
实际上,要么链接断开,要么错误报告是私有的:(
标签: c# .net http base64 url-encoding