使用 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# 删除工作区(地理服务器)的主要内容,如果未能解决你的问题,请参考以下文章
使用手机信号塔信息的谷歌地理定位 - Curl 400 Bad request PHP