Método WebApi com parâmetro de endereço de email retorna 404 do HttpClient
Eu tenho um controlador WebApi com um método que se parece com isso:
[HttpGet]
[AcceptVerbs("GET")]
public HttpResponseMessage Run(string reportName, int someId, string someText, DateTime asOfDate, string username)
Eu tenho uma rota personalizada configurada especificamente para esta ação. Quando navego meu navegador para o serviço da Web, tudo funciona bem e a ação apropriada é executada:
http://localhost:xxxx/ControllerName/Run/asdf/1/asdf/07-01-2012/[email protected]
No entanto, quando eu tento programaticamente chamar o serviço da web usando o HttpClient e executar um "Get" recebo um erro 404. Não recebo um erro quando o parâmetro username não é um endereço de e-mail. Por exemplo, quando o nome de usuário é apenas "usuário", tudo funciona bem. Aqui está o código de exemplo:
var url = "http://localhost:xxxx/ControllerName/Run/asdf/1/asdf/07-01-2012/[email protected]"
var client = new System.Net.Http.HttpClient();
var response = client.Get(url);
//fails here with 404 error
response.EnsureSuccessStatusCode();
Eu tentei UrlEncoding o endereço de e-mail sem sorte. Qualquer conselho é apreciado.