Ошибка 411 - «Требуется длина» при использовании Google Vision AI in. NET - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь использовать 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;

, чтобы попытаться устранить ошибку, но не повезло. Есть идеи?

...