Bing News Search API的C# SDK能否用AppId调用私有端点及相关疑问
关于Bing News Search API C# SDK与私有端点调用的问题
1. C# SDK是否支持用App Id调用私有端点?
官方的Microsoft.Azure.CognitiveServices.Search.NewsSearch SDK是为Azure公共认知服务端点设计的,它的鉴权逻辑默认依赖订阅密钥,并没有提供直接配置私有端点或使用App Id作为凭证的参数。也就是说,你没法直接通过现有SDK用App Id调用私有端点——SDK的底层实现绑定到公共端点,也没有预留App Id的传入入口。
2. 必须用HttpWebRequest吗?
倒也不必,虽然不能用SDK,但你可以用更现代的HttpClient来封装REST请求,比HttpWebRequest更简洁易用。这里给个简单的示例:
using System; using System.Net.Http; using System.Threading.Tasks; public class PrivateBingNewsClient { private readonly HttpClient _httpClient; private readonly string _privateEndpoint; private readonly string _appId; public PrivateBingNewsClient(string privateEndpoint, string appId) { _privateEndpoint = privateEndpoint; _appId = appId; _httpClient = new HttpClient(); } public async Task<string> SearchNewsAsync(string query) { var requestUri = $"{_privateEndpoint}?q={Uri.EscapeDataString(query)}&appid={_appId}"; var request = new HttpRequestMessage(HttpMethod.Get, requestUri); var response = await _httpClient.SendAsync(request); response.EnsureSuccessStatusCode(); return await response.Content.ReadAsStringAsync(); } }
如果你的私有端点要求把App Id放在请求头而非Query参数里,只需要调整请求头的设置即可。
3. 私有API提供商能否生成订阅密钥?
这完全取决于私有提供商的服务配置。如果他们是基于Azure Cognitive Services的私有实例部署,通常可以为消费者生成专属的订阅密钥(和公共服务的鉴权方式一致);如果是自定义的API服务,也可以根据需求配置不同的鉴权凭证——比如生成订阅密钥、继续使用App Id,或者其他OAuth类的凭证。建议直接联系你的私有API提供商,确认他们支持的鉴权方案和凭证生成方式。
内容的提问来源于stack exchange,提问作者Prashanth Subramanian
相关产品推荐
相关产品推荐

