地理服务器返回 405:不允许的方法
Posted
技术标签:
【中文标题】地理服务器返回 405:不允许的方法【英文标题】:Geoserver returns 405:Method Not Allowed 【发布时间】:2016-05-23 11:24:19 【问题描述】:我正在尝试在 C# 中创建 Geoserver REST 客户端。示例代码如下:
private static string GEOSERVER_HOST = "http://10.0.0.248:8080/geoserver/rest/";
private static string GEOSERVER_USER = "admin";
private static string GEOSERVER_PASSWD = "geoserver";
public WebResponse PerformRequest(string endPoint, string requestBody, string method = "PUT")
string gUrl = GEOSERVER_HOST + endPoint;
WebRequest request = WebRequest.Create(gUrl);
request.ContentType = "text/xml";
request.Method = method;
request.Credentials = new NetworkCredential(GEOSERVER_USER, GEOSERVER_PASSWD);
if (method != "GET")
byte[] buffer = Encoding.GetEncoding("UTF-8").GetBytes(requestBody);
Stream requestStream = request.GetRequestStream();
requestStream.Write(buffer, 0, buffer.Length);
requestStream.Close();
WebResponse response = request.GetResponse();
return response;
public bool AddNewWorkspace(string workspaceName)
try
PerformRequest("workspaces", "<workspace><name>"+ workspaceName+"</name></workspace>");
return true;
catch (Exception ex)
return false;
执行request.GetResponse()时,返回异常“405:Method Not Allowed”。
我正在使用一个相当新的 Geoserver(我相信它是 2.8.something)。已选择默认安装选项。 REST 功能已打开(我可以使用浏览器浏览 /rest/“目录”。
Geoserver 在 32 位 Windows 8 机器上运行。并且 Geoserver 已启动。
我也可以毫无问题地执行 GET 请求,因此身份验证似乎有效。
任何帮助将不胜感激。
【问题讨论】:
你确定/geoserver/rest/workspaces
支持PUT
操作吗?
我们现在是朋友了。更改为 POST 有效。我正在使用示例代码上传使用 PUT 的形状文件。将您的评论作为答案的一部分,我会接受。
【参考方案1】:
HTTP/1.1 405 Method Not Allowed
通常指请求方法/动词。
您的参数method
的默认值是"PUT"
,在调用PerformRequest
时不会覆盖它。
/geoserver/rest/workspaces
似乎不支持PUT
操作。
【讨论】:
谢谢。我假设由于您使用 PUT 上传文件,因此您也将使用 PUT 创建工作区。我错了。以上是关于地理服务器返回 405:不允许的方法的主要内容,如果未能解决你的问题,请参考以下文章
Jersey 中不允许的 405 方法正在返回 Tomcat 的 405 页面
WCF REST 服务返回 405:jQuery AJAX GET 不允许的方法
Spring Boot POST 请求返回 http 状态 405“方法不允许”而不是 HTTP 状态 404