我有一个 WebApi 控制器,其方法如下所示:
[HttpGet]
[AcceptVerbs("GET")]
public HttpResponseMessage Run(string reportName, int someId, string someText, DateTime asOfDate, string username)
我有一个专门为此操作配置的自定义路由。当我将浏览器导航到 Web 服务时,一切正常,并且执行了适当的操作:
http://localhost:xxxx/ControllerName/Run/asdf/1/asdf/07-01-2012/user@domain.com
但是,当我尝试使用 HttpClient 以编程方式调用 Web 服务并执行“Get”时,我收到 404 错误。当用户名参数不是电子邮件地址时,我不会收到错误消息。例如,当用户名只是“用户”时,一切正常。这是示例代码:
var url = "http://localhost:xxxx/ControllerName/Run/asdf/1/asdf/07-01-2012/user@domain.com"
var client = new System.Net.Http.HttpClient();
var response = client.Get(url);
//fails here with 404 error
response.EnsureSuccessStatusCode();
我尝试过对电子邮件地址进行 UrlEncoding,但没有成功。任何建议表示赞赏。