使用 curl 和 C# 删除工作区(地理服务器)

Posted

技术标签:

【中文标题】使用 curl 和 C# 删除工作区(地理服务器)【英文标题】:Delete a workspace (geoserver) using curl and C# 【发布时间】:2011-07-29 10:37:45 【问题描述】:

我搜索并没有找到如何使用 curl 和 C# 删除工作区,

我可以使用 Curl 和 C# 创建工作区,但我不知道是否可以使用相同的工具删除工作区

提前致谢

       string url = "http://xxxxxxxxxxx:8080/geoserver/rest/workspaces";
        WebRequest request = WebRequest.Create(url);

        request.ContentType = "text/xml";
      request.Method = "DELETE";


        string authInfo = "xxxx:xxxxxxx";

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

        byte[] buffer = Encoding.GetEncoding("UTF-8").GetBytes("<workspace><name>testWorkspace</name></workspace>");
        Stream reqstr = request.GetRequestStream();
        reqstr.Write(buffer, 0, buffer.Length);
        reqstr.Close();

        WebResponse response = request.GetResponse();

【问题讨论】:

给我们看一些代码!什么有效?什么不起作用? 【参考方案1】:

如果您可以通过编程方式创建工作区,则应该可以删除一个(假设凭据正确)。

查看 geoerver 的 REST API 的文档。向下滚动到 Workspaces 部分,您会注意到您需要将 DELETE 方法发送到要删除的工作区的服务器。

既然你已经创建工作,你应该拥有所有你需要的代码来让 DELETE 工作。

编辑

查看代码后,我将请求更改为使用 URL

http://xxxxxxxxxxx:8080/geoserver/rest/workspaces/testWorkspace

并查看执行删除时是否仍然收到 405。

【讨论】:

感谢 Gabe 和 Brian 我正在使用 request.Method = "DELETE";但在 WebResponse 中,我收到此消息“远程服务器返回错误:(405) 方法不允许。” 根据我链接的文档,如果您未在帖子中指定要删除的工作区,您将得到 405。 您发送 HTTP 请求的 url 是什么?它应该类似于 /workspaces/ 其中 是您要删除的工作区。

以上是关于使用 curl 和 C# 删除工作区(地理服务器)的主要内容,如果未能解决你的问题,请参考以下文章

如何从 C# 代码调用 Google 地理编码服务

使用手机信号塔信息的谷歌地理定位 - Curl 400 Bad request PHP

Paypal REST api 调用适用于 cURL,但不适用于 C# 代码

C# 中的 Google 地理编码 Json 解析问题

保持地理定位服务运行?

发送带有 C# 错误 403 的文件和数据。CURL 没有错误