c# - 无法从 .net 核心授权 GCP Vertex 调用
问题描述
随着谷歌最近宣布 Vertex AI,我现在正试图调用我创建的端点。当我使用 c#(.net Core consol app)时,我能找到的唯一方法是使用 REST API:
我的代码使用了我在 GCP 上创建的仅限于 Vertex AI API 的 API 密钥。
sVertexSearchPrm 变量包含以下 JSON:
{
"instances": [{
"content": "YOUR_IMAGE_BYTES"
}],
"parameters": {
"confidenceThreshold": 0.5,
"maxPredictions": 5
}
}
这是代码:
HttpClient client = Method_Headers(sVertexAPIKey, sVertexURI);
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post,
Uri.EscapeUriString(client.BaseAddress.ToString()));
request.Content = new StringContent(sVertexSearchPrm, Encoding.UTF8, "application/json");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage tokenResponse = await
client.PostAsync(Uri.EscapeUriString(client.BaseAddress.ToString()), request.Content);
if (tokenResponse.IsSuccessStatusCode)
{
SearchResponse = tokenResponse.Content.ReadAsStringAsync().Result;
return SearchResponse;
}
以及设置标题的方法:
private HttpClient Method_Headers(string apiKey, string endpointURL)
{
HttpClientHandler handler = new HttpClientHandler() { UseDefaultCredentials = false };
HttpClient client = new HttpClient(handler);
try
{
client.BaseAddress = new Uri(endpointURL);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("key", apiKey);
//client.DefaultRequestHeaders.Add("Authorization", "Bearer " + apiKey);
}
catch (Exception ex)
{
return null;
}
return client;
}
当我运行它时,我收到一个错误:
{StatusCode: 401, ReasonPhrase: 'Unauthorized', Version: 1.1, Content: }
我错过了什么?
阿维
解决方案
推荐阅读
- c - 如何从字符串中获取字符
- imputation - PMML-MultipleModels:带有缺失/无效值信息的附加目标
- ios - 当数字商品也在应用程序之外提供时,我是否需要使用 Apple 应用程序内购买?
- string - 将字符串拆分为数组
- hyperledger-fabric - 网络 net_byfn id a4ebec5b9879b4dc72ac8abc3e6c03e183f1c50506473101431d1c7116e11657 具有活动端点
- python - 无法启动 Jupyter Notebook ModuleNotFoundError:没有名为“资源”的模块
- html - 国际字体图标不显示
- android - 方法在执行改造回调之前返回一个空值
- javascript - 使用 ChartJS 绘制带孔的范围水平条形图
- python - 如何向 pytest 添加简短描述,使其显示在简短摘要报告中?