我有一个网站,显示-Default.aspx,现在我加了的WebAPI CONTROLER类项目。该页面,我怎样才能得到它运行,也就是说,如果我只是创建一个Post请求与我的URL不起作用。下面是我的webapi控制器类,我如何将它集成到我当前的网站 - 所以我可以发布请求并获取返回字符串。怎样的WebAPI添加到ASPX页面
public class Valcontrol : ApiController
{
// GET api/<controller>
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/<controller>/5
public string Get(int id)
{
return "value";
}
// POST api/<controller>
public String Post([FromBody]string value)
{
return "Test";
}
// PUT api/<controller>/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/<controller>/5
public void Delete(int id)
{
}
}
如果我做一个POST请求“www.xyz.in”我得到整个网页在我的收益流,而不是,我在我的帖子以上功能返回字符串“Test”。在我的应用程序
客户端调用 - Java代码:
URL url = new URL("http://www.xyz.in/");
// get the payuConfig first
String postParam = "Dev";
byte[] postParamsByte = postParam.getBytes("UTF-8");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(postParamsByte.length));
conn.setDoOutput(true);
conn.getOutputStream().write(postParamsByte);
InputStream responseInputStream = conn.getInputStream();
StringBuffer responseStringBuffer = new StringBuffer();
byte[] byteContainer = new byte[1024];
for (int i; (i = responseInputStream.read(byteContainer)) != -1;) {
responseStringBuffer.append(new String(byteContainer, 0, i));
}
String strResponse = responseStringBuffer.toString();
下面是得到了添加到我的web.config(由Visual Studio)文件,当我加入的WebAPI类,我的项目内容。
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit"/>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit"/>
<remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0"/>
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0"/>
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
</handlers>
你串回来在Ajax请求的数据..请确保你包括你正在做的岗位价值,也可能不会映射propertly –
一个基本的疑问,以确认是否是正确地做事,在客户端应用程序要打发POST请求我的默认网址我网站,我应该使用/ api/Valcontrol来执行Post事件吗? – user1066231
是的,你很可能做出正确的发布请求,你只是没有你的控制器appropiately命名 –