I want to send a HTTP GET to http://example.com/%2F
. My first guess would be something like this:
using (WebClient webClient = new WebClient())
{
webClient.DownloadData("http://example.com/%2F");
}
Unfortunately, I can see that what is actually sent on the wire is:
GET // HTTP/1.1
Host: example.com
Connection: Keep-Alive
So http://example.com/%2F gets translated into http://example.com// before transmitting it.
Is there a way to actually send this GET-request?
The OCSP-protocol mandates sending the url-encoding of a base-64-encoding when using OCSP over HTTP/GET, so it is necessary to send an actual %2F rather than an '/' to be compliant.
EDIT:
Here is the relevant part of the OCSP protocol standard (RFC 2560 Appendix A.1.1):
An OCSP request using the GET method is constructed as follows:
GET {url}/{url-encoding of base-64 encoding of the DER encoding of the OCSPRequest}
I am very open to other readings of this, but I cannot see what else could be meant.