Bing 搜索 API c# 中的 Azure 市场身份验证

Bing Search API Azure Marketplace Authentication in c#

如何在不使用 BingSearchContainer 的情况下向 bing search api 进行身份验证。

使用 bing 搜索容器 我们可以这样做:

   var bing = new BingSearchContainer(new Uri("https://api.datamarket.azure.com/Bing/Search/")) { Credentials = new NetworkCredential(bingKey, bingKey) };

但这对我没有帮助,因为我需要通过一些其他代理才能访问互联网。

谁能帮我解决这个问题?

一种方法是创建具有基本授权的 WebRequest
像这样:

     //some demo uri
     Uri uri = new Uri("https://api.datamarket.azure.com/Bing/Search/Composite?Sources=%27web%27&Query=%27xbox%27&$format=json");
     System.Net.WebRequest req = System.Net.WebRequest.Create(uri);
     byte[] byteKey = System.Text.ASCIIEncoding.ASCII.GetBytes(bingKey + ":" + bingKey);
     string stringKey = System.Convert.ToBase64String(byteKey);
     req.Headers.Add("Authorization", "Basic " + stringKey);
     req.Proxy = new System.Net.WebProxy("proxy_url", true);
     req.Proxy.Credentials = new NetworkCredential("", "", "");
     System.Net.WebResponse resp = req.GetResponse();