Url Encode Forward Slash (/) in .NET

Viewed 17332

How can I force either Uri or HttpWebRequest to allow a uri containing both / and %2f like the following?

http://localhost:55672/api/exchanges/%2f/MyExchange

I tried this...

WebRequest request = 
    HttpWebRequest.Create("http://localhost:55672/api/exchanges/%2f/MyExchange");

...and this...

Uri uri = new Uri("http://localhost:55672/api/exchanges/%2f/MyExchange", true);
WebRequest request = HttpWebRequest.Create(uri);

...and this...

UriBuilder builder = new UriBuilder();
builder.Port = 55672;
builder.Path = "api/exchanges/%2f/MyExchange";
WebRequest request = HttpWebRequest.Create(builder.Uri);

However with all of these, request.RequestUri ends up http://localhost:55672/api/exchanges///MyExchange and request.GetResponse() produces a 404 response.

FYI I'm trying to use RabbitMQ's HTTP API and typing the Url in Chrome produces the expected JSON result.

4 Answers
Related