【问题标题】:Authenticate an API Request with OAuth?使用 OAuth 验证 API 请求?
【发布时间】:2021-08-31 11:32:27
【问题描述】:

我正在尝试编写一个 C# 脚本来发出 API 请求并将流存储为 json 文件。我得到了以下代码来使用https://jsonplaceholder.typicode.com,但需要添加 OAuth 身份验证才能向另一个站点发出请求。我已经有了公共令牌和密钥。任何有关如何将这些与请求一起发送的帮助将不胜感激。我已经安装了 Owin.Security.OAuth 包,但不确定如何使用它。如果需要,我愿意使用不同的 OAuth 包。谢谢!

    static void Main(string[] args)
    {
        string strurltest = String.Format("http://api.fakeWebsite.com/v1/sites.json");
        string public_token = "****************";
        string secret_key = "**************";
        WebRequest requestObject;
        requestObject = WebRequest.Create(strurltest);        
        requestObject.Method = "GET";
        HttpWebResponse responseObject = null;
        responseObject = (HttpWebResponse)requestObject.GetResponse();
        string strresulttest = null;
        using (Stream stream = responseObject.GetResponseStream())
        {
            StreamReader sr = new StreamReader(stream);
            strresulttest = sr.ReadToEnd();
            sr.Close();
        }

        JObject json = JObject.Parse(strresulttest);

        using (StreamWriter myFile = new StreamWriter(@"E:\Programs\ApiRequests\" + "Comments" + ".json"))
        {
            myFile.WriteLine(JsonConvert.SerializeObject(json, Formatting.Indented));
        }

    }
}

}

【问题讨论】:

    标签: c# asp.net json api oauth-2.0


    【解决方案1】:

    我想通了。使用 DevDefined.OAuth NuGet 包,我创建了新的 OAuthConsumerContext 对象并将 consumerkey 和 consumersecret 值分配给其同名变量。然后我只创建一个 OAuthSession 对象,将 ConsumerContext 对象作为参数传递。最后,我进行了 session.Request.Get().ForURl() 调用并将站点 api url 作为参数传递。

    希望这对下一个人有所帮助。

    【讨论】:

      猜你喜欢
      • 2010-11-11
      • 2013-06-08
      • 2015-04-01
      • 2018-04-26
      • 2019-05-01
      • 2017-10-01
      • 2017-01-19
      • 1970-01-01
      • 2013-01-25
      相关资源
      最近更新 更多