c# - 如何使用这些 cURL 命令调用访问 token 的 REST Web API - 在 C# 中

标签 c# asp.net api curl

我对 OAuth 有点陌生,但正在学习。我所拥有的是我正在尝试遵循的本教程。我正在尝试遵循“生物 - 检索传记记录数据”下的简单 3 行示例:https://members.orcid.org/api/tutorial-retrieve-data-public-api-curl-12-and-earlier

但我需要做的是使用 C# 控制台程序而不是 CURL 来执行此操作,我想使用 HttpClient 命名空间。我有自己的客户端 ID 和客户端密码可供使用。我正在尝试使用此公共(public) API 获取访问 token 以存储在任何位置,然后像本示例一样调用以获取 XML 数据。我的问题是我不知道如何将他们的 CURL 调用转换为 C# 代码。我没有为此使用 ASP.NET 网站...这一切都需要在 C# 控制台程序中完成。

最佳答案

如果您计划将 curl 用于许多不同的任务,而不是重写该工具。只需下载 Windows 兼容版本并将其作为资源嵌入到您的控制台应用程序中。

Windows(32 位)版本的 curl.exe - https://akamai.bintray.com/5a/5aa976c1cfc96d95a12cb469ce9bbb1b193ae7599d446f4a22d023a585c5ffe9?gda=exp=1455730084~hmac=85d7d80271ecba52893dacb956690dedd020c0ad61f2943b28adcc43ce14e45a&response-content-disposition=attachment%3Bfilename%3D%22curl-7.47.1-win32-mingw.7z%22&response-content-type=application%2Fx-www-form-urlencoded

编辑 - 像这样:

Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "C:\CURL\curl.exe";
p.StartInfo.Arguments = "-i -L -H 'Accept: application/json' -d 'client_id=APP-GWTDOE3CX89FH7FD' -d 'client_secret=5160c539-4ec9-4e8c-8966-580df68b494f' -d 'scope=/read-public' -d 'grant_type=client_credentials' 'https://pub.sandbox.orcid.org/oauth/token'";           
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Console.WriteLine(output);

关于c# - 如何使用这些 cURL 命令调用访问 token 的 REST Web API - 在 C# 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35463199/

相关文章:

c# - ASP.NET MVC动态绑定(bind)编辑器模板

c# - 如何在 EC2 Ubuntu 服务器上使用 C# 重新启动计算机?

c# - 计算服务区域的最有效方法 Asp.net + SQL Server

c# - 将 select new 转换为 DataTable?

ruby - 为 Savon 2 (SOAP) 传递数组元素

php - 使用curl发生API错误时如何读取响应体?

c# - 如何在不锁定数据库的情况下使用数据读取器执行 SQLite 查询?

c# - Odata V4 $Select after $expand 一对一关系

asp.net - 如何在 Orchard 中设置小部件的样式?

api - 具有单个服务器的 OAuth 2.0