【发布时间】:2015-01-28 05:51:36
【问题描述】:
我有 ASP.Net MVC4 WEB API,托管在本地 IIS 中。 我使用 GET 方法从 android 请求 api。响应是 405 Action not Allowed。
我在控制器中有这个方法:
public IEnumerable<Table> GET()
{
return _repository.GetAll();
}
但是当我将方法更改为 POST 时:
public IEnumerable<Table> POST()
{
return _repository.GetAll();
}
并通过 POST 方法从 android 请求。
我得到了结果。
我使用相同的路由请求 GET 和 POST。
'/api/tables'
在android项目中,我使用HttpUrlConnection来请求API。
try{
URL url = new URL(urls[0]);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(5000 /* milliseconds */);
conn.setConnectTimeout(7500 /* milliseconds */);
conn.setRequestProperty("Accept", "application/json");
conn.setRequestMethod(method);
conn.setDoInput(true);
if(method == "POST")
conn.setDoOutput(true);
if(params != null){
// Get OutputStream for the connection and
// write the parameter query string to it
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
writer.write(getURLEncodedString(params));
writer.flush();
writer.close();
}
// Starts the query
conn.connect();
我做错了什么?
信息:
当来自浏览器Get Method的请求返回结果和Post Method 405时。
【问题讨论】:
-
你的控制器的名字是什么
-
controller 是 TablesController,action 的 route 是 'api/tables'
-
看看我的回答..可能对你有帮助
-
我找到了答案 - 问题出在我的 android HttpUrlConnection
标签: android asp.net-mvc-4