2016-02-02 1 views
0

У меня есть завиток запрос:Перевести Curl в restsharp

curl -v -u admin:geoserver -XPUT -H "Content-type: application/zip" --data-binary @C:\nyc_khr.zip http://localhost:9090/geoserver/rest/workspaces/nyc_roads/datastores/roads/file.shp 

Мне нужно сделать запрос, как выше, но с использованием C#
Пример моего кода:

RestClient client = new RestClient(URL) 
{ 
     Authenticator = new HttpBasicAuthenticator("admin", "geoserver") 
}; 

var data = File.ReadAllBytes(somePath); 


string url = @"rest/workspaces/nyc_roads/datastores/roads/finalas.shx"; 
var request = new RestRequest(url, Method.PUT); 
request.AddHeader("Content-Type", "application/zip"); 

request.AddFile("finalik.zip", data, "finalik.zip", "application/zip"); 
var response = client.Execute(request); 
var res = response.ContentType; 
+2

Какая у вас проблема/ошибка? – NikolaiDante

+0

Я получил с сервера «Не удалось определить формат. Попробуйте настроить заголовок Content-type». Но если я использую cUrl, он отлично работает. \ –

+0

В вашем примере я вижу, что URL-адреса не совпадают - cURL указывает на «road/file.shp», но RestSharp указывает на «road/finalas.shx». Может ли это быть причиной, или это просто какой-то примерный код? –

ответ

1

вместо

request.AddFile() 

это сработало для меня:

request.Parameters.Clear(); 
request.AddParameter("application/zip", data, ParameterType.RequestBody);