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();
如何在不使用 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();