我有一个自我管理的自托管API,以及一个简单的html网站,我想将表单数据提交到自托管API。我目前正在测试localhost上的webapi,该站点也通过IIS托管在localhost上。我不确定我需要在html或C#代码中进行哪些更改才能使其正常工作。以下是我所拥有的基础知识:
public class TestController : ApiController
{
public TestController() {}
[HttpGet]
public IHttpActionResult()
{
//do stuff
return OK();
}
[HttpPost]
//POST localhost:9400/api/Test
public IHttpActionResult Post([FromBody]FormDatacollection name)
{
//do stuff
return OK();
}
}
这是一个非常简单的网站html:
<html>
<head>
<title>
My Test Page
</title>
</head>
<body>
<form action="localhost:9400/api/test" method="post">
<input type="text" name="name"><br>
</form>
</body>
</html>
基本上,我希望将放入网站文本框中的文本通过帖子发送到自托管api。我用我所拥有的东西尝试过它,但它从未进入过帖子,似乎请求从未从浏览器发出。但是,如果我在浏览器中手动键入localhost:9400 / api / Test,则会到达Get,然后我会收到OK响应。
我只是拥有web api的基本配置。
public void Configuration(IAppBuilder appBuiler)
{
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
appBuilder.UseWebApi(config);
}
我想做的是什么,如果是的话,我怎么能去做呢?
答案 0 :(得分:0)
如果没有一些更改,它将无法正常工作,您的其余api期望数据以json的形式发送。首先,我强烈建议您获取Fiddler的副本,然后您将确切地看到来自您网站的内容以及从您的服务返回的内容。您可能发现无法在服务中进行调试,因为服务接收的内容与控制器中的任何签名都不匹配,因此框架本身正在处理无效请求。该框架将使用基于http动词和方法参数的方法匹配请求。
在使其工作方面,请搜索将HTML表单数据发送到其他API,在此站点和其他地方发送大量结果。