Geoserver returns 405:Method 不允许

Geoserver returns 405:Method Not Allowed

我正在尝试用 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/ "directory".

Geoserver 运行 在 32 位 Windows 8 机器上。 Geoserver 已启动。

我也可以毫无问题地执行 GET 请求,因此身份验证似乎有效。

如有任何帮助,我们将不胜感激。

HTTP/1.1 405 Method Not Allowed 通常是指请求 method/verb.

您的参数 method 的默认值为 "PUT",您在调用 PerformRequest.

时不会覆盖该值

看来/geoserver/rest/workspaces不支持PUT操作