【问题标题】:Translate cUrl to restsharp将 cUrl 翻译成 restsharp
【发布时间】:2016-02-02 09:55:46
【问题描述】:

我有一个 cUrl 请求:

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;

【问题讨论】:

  • 你有什么问题/错误?
  • 我从服务器得到“无法确定格式。尝试设置 Content-type 标头”。但如果我使用 cUrl 它工作正常。 \
  • 在您的示例中,我看到 URL 不匹配 - cURL 指向 roads/file.shp,但 RestSharp 指向 roads/finalas.shx。这可能是原因,还是这只是一些示例代码?
  • 对于这种情况并不重要。问题:我不知道如何正确地将文件附加到请求中。

标签: c# asp.net curl restsharp


【解决方案1】:

而不是

request.AddFile()

这对我有用:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    相关资源
    最近更新 更多