GeoServer Rest를 사용하여 레이어에 Get, Post, Put 및 Delete 작업을 구현하려고합니다.GeoServer가 405를 반환합니다. 메서드가 POST 메서드 중에 없습니다.
Get, Put 및 Delete 메서드를 성공적으로 구현할 수 있습니다.
하지만 레이어에 Post 메서드를 구현하려고 할 때 GeoServer는 상태 코드를 반환합니다 : 405 즉 메서드가 없습니다. 이 POST 메서드가
public async Task<IActionResult> PostLayer(string layerName)
{
var authValue = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("admin:geoserver")));
try
{
var client = new HttpClient()
{
DefaultRequestHeaders = { Authorization = authValue }
};
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.BaseAddress = new Uri("http://localhost:8080");
var stringContent = new StringContent(@"C:\Users\i2vsys\Desktop\test.kml");
var response = await client.PostAsync($"/geoserver/rest/layers/{layerName}",stringContent);
response.EnsureSuccessStatusCode();
var stringResponse = await response.Content.ReadAsStringAsync();
return Ok(stringResponse);
}
catch (HttpRequestException ex)
{
return BadRequest(ex.Message);
}
}
그러나 GeoServer API 문서에 따라 :
여기 내 코드입니다. 그래서 문제는 분명히 내 편이니까 나는 그것을 발견 할 수 없다. 나는 또한 다른 사람들이 질문하는 것을 보았지만 그러한 해결책은 나에게 도움이되지 못했다.
도움을 주시면 감사하겠습니다.
감사합니다. 하지만 REST API를 사용하여 레이어를 지리적 서버에 게시하는 방법은 무엇입니까? –
이 새 레이어를 형성하는 새로운 피처 유형을 POST합니다. https://gis.stackexchange.com/questions/12970/create-a-layer-in-geoserver-using-rest를 참조하십시오. –