2017-05-22 11 views
1

中に発見されていないメソッドは、私がゲット実装しようとしています、ポストを、GeoServer休憩を使用してレイヤー上の操作を入れて、削除します。GeoServerは405を返します:POSTメソッド

私は、取得実装入れて、成功した方法を削除することができています。

しかし、私は、レイヤー上の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ドキュメントによると:

は、ここに私のコードです。だから問題は間違いなく私の側からあり、私はそれを見つけることができません。私も他の人に質問してきましたが、それらの解決策は私のためには機能しませんでした。

ご協力いただければ幸いです。

答えて

1

私はlayers documentationを見てみると、私はPOSTリクエストへの参照を参照してくださいません。 POSTがやることを何と望んだのですか?

あなたは create a new DataStore最初の例で説明したように新しいレイヤーを作成します。リンクについて

curl -v -u admin:geoserver -XPUT -H "Content-type: application/zip" 
    --data-binary @roads.zip http://localhost:8080/geoserver/rest/workspaces/acme/datastores/roads/file.shp 
+0

ありがとう:のようないくつかのことを使用します。しかし、REST APIを使ってレイヤーをジオサーバーに投稿するにはどうすればいいですか? –

+0

が新しいレイヤーを形成する新しいフィーチャータイプをPOSTします。 https://gis.stackexchange.com/questions/12970/create-a-layer-in-geoserver-using-restを参照してください。 –

関連する問題