簡體   English   中英

Geoserver返回405:不允許的方法

[英]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 /“目錄”。

Geoserver在32位Windows 8計算機上運行。 並啟動了Geoserver。

我也可以毫無問題地執行GET請求,因此身份驗證似乎可以正常工作。

任何幫助,將不勝感激。

HTTP/1.1 405 Method Not Allowed通常指請求方法/動詞。

您的參數method的默認值是"PUT" ,在調用PerformRequest時不會覆蓋它。

似乎/geoserver/rest/workspaces不支持PUT操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM