techspider techspider - 6 days ago 5
C# Question

Passing URI to RabbitMQ

I am connecting to RabbitMQ using below code

factory.UserName = "userid";
factory.Password = "mypass@25";
factory.VirtualHost = "/filestream";
factory.Port = AmqpTcpEndpoint.UseDefaultPort;
factory.HostName = "myrabbitserver";
return factory.CreateConnection();


I wanted to change connection settings to the below format:

amqp://userid:mypass@25@myrabbitserver:5672/filestream


My password has
@
character due to which I'm not able to pass URI

var factory = new ConnectionFactory();
factory.Uri = "amqp://userid:mypass@25@myrabbitserver:5672/filestream";


I end up supplying each attribute of factory manually. Is there a way that we can tell RabbitMQ that my password has @ by doing something like below?

factory.Uri = "amqp://userid:"mypass@25"@myrabbitserver:5672/filestream";


If I try to change
@
in the password to
%40
, it throws an error when acquiring the connection

None of the specified endpoints were reachable

Answer

Apparently, there is no way to encode or escape the @ character in password. I changed password for the user to avoid this character and everything worked as expected.

Comments