【问题标题】:how to run CURL commands using c#? [duplicate]如何使用 C# 运行 CURL 命令? [复制]
【发布时间】:2015-08-12 11:38:53
【问题描述】:

我想使用 NEST 从弹性搜索中获取数据,但我们无法使用嵌套编写更一致的查询。 所以我想写一个 url 并从 CURL 命令中获取 json 数据并使用它来构建我的 UI。 那么我该如何使用 c# 来做到这一点?

【问题讨论】:

  • 我在这里谈论的是一个网络请求,它是关于从命令提示符中选择文件,对吧?
  • cURL 是一个命令行实用程序。如果您只是指网络请求,请看这里:stackoverflow.com/questions/7688350/…
  • 这就像我想使用 curl 命令将 Web 请求发送到弹性搜索并想要存储响应

标签: c# json elasticsearch nest


【解决方案1】:

虽然它是重复的,但我不会仅仅为了点击一个 url 而调用另一个程序。

只需使用WebClientWebRequest (difference)

【讨论】:

    【解决方案2】:

    curl 是一个 linux 工具,用于通过 URL 将数据从 & 传输到服务器。

    elastic search 是一个带有 RESTful Web 界面的全文搜索引擎。

    nest 是一个为您抽象 REST api 的库,如果您说这些抽象不符合您的需求,您不需要回退到另一个命令行程序来查询 REST 服务器...如果您重新使用一种可以轻松完成此任务且功能更多的编程语言!

    您可以使用 C# 查询 REST 服务器就好了。这是 API 规范: https://github.com/elastic/elasticsearch/tree/master/rest-api-spec

    您可以编写自己的 REST 网络客户端:

    创建一个 URL 请求,然后使用 HTTP GET 或提交请求 POST 协议。返回响应数据时,必须序列化 针对一组数据合同的数据。随着 REST 服务添加新的 功能,这些数据合同可能需要更新。一个好处 使用 JSON 序列化而不是 XML 序列化是 架构中的更改很少会导致现有应用程序出现问题。 例如,如果将新属性添加到 REST 服务,使用旧数据合约的应用程序仍然可以无错误地处理响应;但是,新属性将不可用。要获取新属性,您必须更新数据合同。为了在 .NET 中使用 JSON 序列化,请通过在项目中引用以下库来使用 DataContractJsonSerializer:

    • System.Runtime.Serialization
    • System.ServiceModel.Web

    来源: https://msdn.microsoft.com/en-GB/library/jj819168.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      • 2015-08-06
      • 2011-02-12
      • 1970-01-01
      相关资源
      最近更新 更多