Я пытаюсь обновить фотографию с помощью 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);
Обивка может быть проблемой, постарайтесь не заменить "=" с "*". См. Также: Преобразование строки в безопасный в Интернете формат Base64
ps переупакованные библиотеки не поощряются в движке приложения; вы можете вместо этого использовать DatatypeConverter.printBase64Binary().