【问题标题】:Error "The remote server returned an error: (501) Not Implemented." Reloading geoserver with C#.错误“远程服务器返回错误:(501) 未实现。”使用 C# 重新加载地理服务器。
【发布时间】:2011-10-29 15:16:57
【问题描述】:

我正在尝试重新加载地理服务器目录,但出现以下错误:

远程服务器返回错误:(501) Not Implemented。

这是代码

WebRequest serverRequest  =WebRequest.Create("http://xxxx:8080/geoserver/rest/workspaces");
serverRequest.Method = "RELOAD";

            serverRequest.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(password));

            WebResponse serverResponse;
            serverResponse = serverRequest.GetResponse();
            serverResponse.Close();

【问题讨论】:

    标签: c# c#-4.0 reload geoserver


    【解决方案1】:

    serverRequest.Method 与您要调用的 REST Webservice(?) 方法无关。

    WebRequest.MethodGETPOST(或those defined for geoserver 中的任何一个),除非有实现协议方法RELOAD 的HttpModule。


    根据地理服务器REST Configuration API Reference "Configuration Reloading",您的调用应如下所示:

    WebRequest serverRequest = WebRequest.Create("http://xxxx:8080/geoserver/rest/reload");
    serverRequest.Method = "POST";
    // get response ...
    

    【讨论】:

    • 确实有不同的方法,例如 GET、POST 、PUT、DELETE,我不确定这不是像重新加载这样的其他方法,那么是不是不可能使用 C# 重新加载?
    • 试一试我的示例,也许可以查看链接的 REST 参考。
    • 感谢您的回答我之前尝试过与您的代码类似的东西,我刚刚尝试了您的代码,结果是在地理服务器中添加了一个类似的文件夹,名为 reload
    • 链接的参考对于 reload 方法的完整 url 应该如何实际看起来有点稀疏。是否需要包含工作区名称似乎不清楚。如果您尚未尝试,请将您的 WebRequest 指向http://xxxx:8080/geoserver/reload。如果这不起作用,我的想法就用完了......
    • 感谢新代码的想法我得到了一个不同的错误“远程服务器返回错误:(404)未找到。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    相关资源
    最近更新 更多