地理服务器返回 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 页面

Flask 文件上传返回错误 405 方法不允许

WCF REST 服务返回 405:jQuery AJAX GET 不允许的方法

Spring Boot POST 请求返回 http 状态 405“方法不允许”而不是 HTTP 状态 404

Wildfly 允许 OPTIONS 方法但返回 405 Method not allowed

使用 IIS 时方法不允许 405