Url-Codieren, Schrägstrich ( / ).NET

Wie kann ich erzwingen, entweder Uri oder HttpWebRequest zu ermöglichen, eine uri, die sowohl / und %2f wie die folgenden?

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

Habe ich versucht, dieses...

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

...und diese...

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

...und diese...

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

Jedoch mit all diesen request.RequestUri endet http://localhost:55672/api/exchanges///MyExchange und request.GetResponse() produziert einen 404 response.

FYI ich versuche, RabbitMQ die HTTP-API und die Eingabe der Url in Chrome produziert die erwarteten JSON-Ergebnis.

Ich habe auch versucht HttpWebRequest.Create("http://localhost:55672/api/exchanges/%252f/PrintConnector"); interessant ist, dass dies produziert die gleichen request.RequestUri wie oben, aber request.RequestUri.LocalPath richtig codiert ist, um /api/exchanges/%2f/MyConnector
FWIW, ich habe gebaut .NET-client für das RabbitMQ-management-API, die könnte sparen Sie etwas arbeiten: nuget.org/packages/EasyNetQ.Management.Client

InformationsquelleAutor Clay | 2012-07-13

Schreibe einen Kommentar