- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 mvc 和 visual studio 创建一个 web api,但是我遇到了一个问题。顺便说一句,我在桌面版 postman 上运行它,而不是通过本地主机在浏览器上运行。
我调用url的方式是
http://localhost:12513/api/CustomerContracts/AddCustomer
[System.Web.Http.HttpPost]
[System.Web.Http.Route("AddCustomer/{description}/{customerRef}/{contractTypeId}/{startDate}/{EndDate}")]
public async Task AddCustomer(string Description, string CustomerRef, int ContractTypeId, DateTime startDate, DateTime endDate)
{
CustomerContracts _newContact = new CustomerContracts();
try
{
_newContact.Description = Description;
_newContact.CustomerRef = CustomerRef;
_newContact.ContractTypeId = ContractTypeId;
_newContact.StartDate = startDate;
_newContact.EndDate = endDate;
db.Entry(_newContact).State = EntityState.Modified;
db.CustomerContract.Add(_newContact);
await db.SaveChangesAsync();
}
catch (Exception x)
{
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent(x.Message) });
}
}
当我在 post man 中运行上面的命令时,会出现以下错误
{ "Message": "The requested resource does not support http method 'POST'." }
我已经在同一个问题上尝试了另一个 SO,但它没有解决我的问题。
我使用的是第一次创建时在 web api 项目中的默认路由文件。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
编辑 2
我提出了以下建议,结果与 postman 中的错误消息相同。
[System.Web.Http.HttpPost]
[System.Web.Http.Route("AddCustomer/{Description}/
{CustomerRef}/{ContractTypeId}/{startDate}/{endDate}")]
public async Task AddCustomer(string Description, string CustomerRef, int ContractTypeId, DateTime startDate, DateTime endDate)
{
CustomerContracts _newContact = new CustomerContracts();
try
{
_newContact.Description = Description;
_newContact.CustomerRef = CustomerRef;
_newContact.ContractTypeId = ContractTypeId;
_newContact.StartDate = startDate;
_newContact.EndDate = endDate;
db.Entry(_newContact).State = EntityState.Modified;
db.CustomerContract.Add(_newContact);
await db.SaveChangesAsync();
}
catch (Exception x)
{
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent(x.Message) });
}
}
最佳答案
路由属性
必须与您编写parameters
列表名称的方式完全相同。
所以代替:
[System.Web.Http.Route("AddCustomer/{description}/{customerRef}/{contractTypeId}/{startDate}/{EndDate}")]
应该是
[System.Web.Http.Route("AddCustomer/{Description}/{CustomerRef}/{ContractTypeId}/{startDate}/{endDate}")]
请注意我是如何更改路径属性以匹配下面的参数列表的。
public async Task AddCustomer(string Description, string CustomerRef, int ContractTypeId, DateTime startDate, DateTime endDate)
{
}
其次:需要在App_Start
中添加WebApiConfig.cs
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
然后:在 Global.asax
文件中的 Application_Start
方法中,添加以下行以注册 WebApi Router
GlobalConfiguration.Configure(WebApiConfig.Register);
关于c# - 路线在 postman 中工作不正确,不允许邮寄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50026008/
我有一个简单的 post 表单,将数据从一个页面发送到另一个页面,但是当我按下提交时,process.php 说没有输入用户名和密码。我觉得我错过了一些非常明显的东西。我在这里做错了什么? 登录.ph
当过去 24 小时重复填写某个值时,我试图让自己在每晚 0:01 使用 cronjob 发送一封电子邮件。 到目前为止我所拥有的是: $query = "SELECT id, detection.nu
我想使用 JSP 发送 HTML 文件。但问题是.. 1) 当我们开发任何 HTML 文件时,我们都会提到一些 CSS 和 JavaScript 文件。 2) 因此,当我发送文件时,它缺少我在其他页面
有人可以指出我在这里做错了什么吗?在 W3c 验证器上我得到这个错误: Line 104, Column 43: Bad value mailto:?subject=Test&body=I found
我必须向 api 端点发出 post 请求,但我收到错误状态 500。 name: "HttpErrorResponse" ok: false status: 500 statusText: "Int
我必须用 Ruby 编写一个电子邮件导入程序,我偶然发现了 Ruby 1.9 的非常漂亮的 Mail gem。我知道如何遍历未读消息,但我不知道如何将它们标记为已读(文档很详尽,但我真的不知道要注意什
虽然有很多相同的问题,但没有一个解决方案对我有用。仅当有只有一个 收件人时才会发送邮件,否则会生成以下错误。此外,我只发送内部电子邮件,不发送外部电子邮件。 有什么想法吗? 代码: $to = 'on
使用 JavaMail API 和 IMAP,我想知道邮件已从文件夹 a 移动到 b。我怎样才能在不添加听众的情况下做到这一点?我的意思是我想在登录帐户并打开文件夹时发现消息的变化。 问题是,如果文件
今天只是一个接一个的问题。我刚刚部署到我的生产服务器并对其进行测试,每当涉及电子邮件时都会出现问题。特别是对于 Devise 的可确认注册电子邮件,每当我注册一个帐户时,日志中都会抛出以下错误...
我是一名优秀的程序员,十分优秀!