Geoserver returns 405:Method 不允许
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/ "directory".
Geoserver 运行 在 32 位 Windows 8 机器上。 Geoserver 已启动。
我也可以毫无问题地执行 GET 请求,因此身份验证似乎有效。
如有任何帮助,我们将不胜感激。
HTTP/1.1 405 Method Not Allowed
通常是指请求 method/verb.
您的参数 method
的默认值为 "PUT"
,您在调用 PerformRequest
.
时不会覆盖该值
看来/geoserver/rest/workspaces
不支持PUT
操作
我正在尝试用 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/ "directory".
Geoserver 运行 在 32 位 Windows 8 机器上。 Geoserver 已启动。
我也可以毫无问题地执行 GET 请求,因此身份验证似乎有效。
如有任何帮助,我们将不胜感激。
HTTP/1.1 405 Method Not Allowed
通常是指请求 method/verb.
您的参数 method
的默认值为 "PUT"
,您在调用 PerformRequest
.
看来/geoserver/rest/workspaces
不支持PUT
操作