Я пытаюсь использовать API Google Vision AI для распознавания чисел на изображениях. Для этого я проследил весь процесс создания проекта в Google Console, получения ключей ... Мне удалось выполнить успешные вызовы в консоли с помощью:
gcloud ml vision detect-text "gs://bucket-name-123/abbey_road.jpg"
Поэтому я генерирую токен с gcloud auth application-default print-access-token
чтобы включить его в мой вызов HttpClient, который выглядит следующим образом:
client = new HttpClient();
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new
MediaTypeWithQualityHeaderValue("application/json"));
pathToCredentials = pathToKeys;
bearerToken = RequestGoogleToken(pathToCredentials); // Gets the token correctly
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", bearerToken);
JObject jsonContent = // my json object;
HttpContent content = new StringContent(jsonContent.ToString(), Encoding.UTF8, "application/json");
Task<HttpResponseMessage> responseMessageTask = client.PostAsync(url, content);
HttpResponseMessage responseMessage = responseMessageTask.Result;
if (responseMessage.IsSuccessStatusCode)
{
var responseData = responseMessage.Content.ReadAsStringAsync().Result;
NativeResponse nativeResponse = JsonConvert.DeserializeObject<NativeResponse>(responseData);
return nativeResponse;
}
else
{
throw (new GoogleOCRException(responseMessage.ToString()));
}
Но затем я выполняю его и получаю следующую ошибку:
StatusCode: 411, ReasonPhrase: 'Length Required', Version: 1.0, Content: System.Net.Http.StreamContent, Headers:
{
Referrer-Policy: no-referrer
Date: Thu, 13 Feb 2020 09:55:31 GMT
Content-Length: 1564
Content-Type: text/html; charset=UTF-8
}
Я подтвердил, что JObject является хорошо сформирован, и Я уже включил следующую строку :
content.Headers.ContentLength = jsonContent.ToString().Length;
, чтобы попытаться устранить ошибку, но не повезло. Есть идеи?