我想发送一个 HTTP GET 到http://example.com/%2F
. 我的第一个猜测是这样的:
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}
我对其他的解读持开放态度,但我看不出还有什么意思。