Неверное значение для ByteString для обновления фотографии в движке Служб Google в Java

1

Я пытаюсь обновить фотографию с помощью Google apps engine.I иметь imageurl я преобразовать его в массив байтов, а затем закодировать его, используя base64.i получил закодированную строку, теперь я пытаюсь обновить фотоданные с помощью справочника API Reference

https://developers.google.com/admin-sdk/directory/v1/reference/users/photos#resource

после обновления я получил ошибку недействительной byteString.I сталкиваются с этой проблемой со вчерашнего дня. Так что дайте мне знать, где я сделал не так? Ниже мой код.

import com.google.appengine.repackaged.org.apache.commons.codec.binary.Base64;

выше класса, используемого для Base64.

 URL url = new URL(myImageUrl);

            ByteArrayOutputStream bais = new ByteArrayOutputStream();
            InputStream is = null;
            try {
              is = url.openStream ();
              byte[] byteChunk = new byte[4096]; // Or whatever size you want to read in at a time.
              int n;

              while ( (n = is.read(byteChunk)) > 0 ) {
                bais.write(byteChunk, 0, n);
              }
              System.out.println(byteChunk);
              byte[] encoded = Base64.encodeBase64(byteChunk);
              String ecodedString = new String(encoded, "UTF-8");
              ecodedString = ecodedString.replace("/", "_");
              ecodedString = ecodedString.replace("+", "-");
              ecodedString = ecodedString.replace("=", "*");
              System.out.println(ecodedString);
Теги:
google-app-engine

1 ответ

3
Лучший ответ

Обивка может быть проблемой, постарайтесь не заменить "=" с "*". См. Также: Преобразование строки в безопасный в Интернете формат Base64

ps переупакованные библиотеки не поощряются в движке приложения; вы можете вместо этого использовать DatatypeConverter.printBase64Binary().

Ещё вопросы

Сообщество Overcoder
Наверх
Меню