我有一个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错误.当用户名参数不是邮箱地址时,我没有收到错误.例如,当用户名只是"user"时,一切正常.以下是示例代码:

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();

我试过对邮箱地址进行UrlEncode,但没有成功.如有任何建议,我们将不胜感激.

推荐答案

只是想一想....com可能是问题的根源吗?

Asp.net相关问答推荐

如何格式化搜索字符串以从 Razor 页表中的多个列返回部分搜索字符串?

无法翻译 LINQ

我们可以在一个网页中使用多个表单吗?

如何在现有数据库中创建 ASP.Net Identity 表?

当前http上下文的http动词

Asp.Net 会话在 ashx 文件中为空

Web.config 导致被组策略阻止错误

ASP.NET IIS - 请求何时排队?

IIS 7.5 上没有 asp.net 功能

显示单选按钮列表内联

如何在同一解决方案中从 MVC 项目调试 Web API 项目

带有文件名的 ASP.net MVC4 WebApi 路由

如何在新实现的接口或基类之间做出决定?

如何使用 ASP.NET 和 jQuery 返回 JSON

如何防止 XXE 攻击(.NET 中的 XmlDocument)

如何从 NuGet 安装 EntityFramework 5.0(和其他旧版本)?

如何获取当前登录用户的角色列表

如何验证 WebClient 请求?

使用 ConfigurationManager.RefreshSection 重新加载配置而不重新启动应用程序

ExecuteReader:连接属性尚未初始化