[英]Geoserver returns 405:Method Not Allowed
I am attempting to create a Geoserver REST client in C#. 我试图在C#中创建Geoserver REST客户端。 Example code below:
下面的示例代码:
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;
}
}
When executing request.GetResponse(), an exception is returned "405:Method Not Allowed". 执行request.GetResponse()时,返回异常“ 405:Method Not Allowed”。
I am using a fairly recent Geoserver (I believe it's 2.8.something). 我正在使用较新的Geoserver(我相信它是2.8.something)。 Default installation options selected.
选择默认安装选项。 REST capabilities are turned on (I can browse the /rest/ "directory" using a browser.
REST功能已打开(我可以使用浏览器浏览/ rest /“目录”。
Geoserver is running on a 32 bit Windows 8 machine. Geoserver在32位Windows 8计算机上运行。 And Geoserver is started.
并启动了Geoserver。
I can also perform GET requests without problem, so authentication seems to be working. 我也可以毫无问题地执行GET请求,因此身份验证似乎可以正常工作。
Any help would be appreciated. 任何帮助,将不胜感激。
HTTP/1.1 405 Method Not Allowed
typically refers to the request method/verb. HTTP/1.1 405 Method Not Allowed
通常指请求方法/动词。
Your parameter method
has a default value of "PUT"
which you're not overriding when calling PerformRequest
. 您的参数
method
的默认值是"PUT"
,在调用PerformRequest
时不会覆盖它。
It would seem that /geoserver/rest/workspaces
does not support the PUT
operation. 似乎
/geoserver/rest/workspaces
不支持PUT
操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.