La API de Google Docs devuelve un servicio 503 no disponible al cargar un archivo. ¿Ha cambiado algo?

Tengo aplicaciones que hacen uso de la API de Google Docs. Hasta hace poco, las subidas que usaban los puntos finales HTTP funcionaban bien. Recientemente, la carga ha iniciado de repente el error. La primera llamada para crear una sesión (que devuelve la URL recuperable) funciona correctamente y devuelve una URL recuperable. Si intenta enviar el contenido del archivo a la URL que se reanuda, se lanzará un 503.

La parte relevante del código que arroja el error es la siguiente:

URL url = new URL(resumableFileUploadUrl); conn = (HttpURLConnection) url.openConnection(); conn.addRequestProperty("client_id", OAuth2Client.CLIENT_ID); conn.addRequestProperty("client_secret", OAuth2Client.CLIENT_SECRET); conn.setRequestProperty("Authorization", "OAuth " + GetAuthToken()); conn.setRequestProperty("X-Upload-Content-Length", String.valueOf(fileContents.length())); //back to 0 conn.setRequestProperty("X-Upload-Content-Type", "text/xml"); conn.setRequestProperty("Content-Type", "text/xml"); conn.setRequestProperty("Content-Length", String.valueOf(fileContents.length())); conn.setRequestProperty("Slug", fileName); if(isUpdate) { conn.setRequestProperty("If-Match", "*"); conn.setRequestMethod("PUT"); } else { conn.setRequestMethod("POST"); } conn.setRequestProperty("GData-Version", "3.0"); conn.setRequestProperty("User-Agent", "GPSLogger for Android"); conn.setUseCaches(false); conn.setDoInput(true); conn.setDoOutput(true); DataOutputStream wr = new DataOutputStream( conn.getOutputStream()); wr.writeBytes(fileContents); wr.flush(); wr.close(); int code = conn.getResponseCode(); newLocation = conn.getHeaderField("location"); 

El código anterior se utiliza tanto para crear la sesión para obtener la URL recuperable como para publicar el contenido del archivo en la URL recuperable.

Lo que es parte de esta actividad de Android. Estoy incluyendo un enlace a la actividad original ya que probablemente sería bastante fácil reproducir el problema simplemente clonando el repositorio. El código ha permanecido intacto durante un año.

¿Ha cambiado algo recientemente que causaría esto?

Me gustaría evitar tener que usar las API de Google Drive por ahora, ya que no he cambiado ningún código y el mismo código se está utilizando en algunas de mis otras aplicaciones en el campo.

Una de las "características" más molestas es el límite de la tasa indocumentada al solicitar imágenes, cada una de las cuales debe ser autenticada. El límite de velocidad parece ser alrededor de 10 / s.

Es posible que utilices la API de Google v2, la cual está obsoleta a partir de ahora. Lea el siguiente post:

 https://developers.google.com/google-apps/documents-list/terms 
  • Cuando Fragment.instantiate es preferible sobre MyFragment.newInstance o nuevo MyFragment ()
  • Recomienda una biblioteca de juegos Java / Android - tarjeta, tablero, etc.?
  • Realm: cambia el nombre del campo para la migración
  • ActionBar en PreferenceActivity
  • Deslizar entre imágenes filtradas para Android
  • Desplazar ficha - NullPointerException - Android
  • Android Uri to Filesize
  • OnCreateView Fragmento no llamado
  • Problema con Android Java UTF-8 HttpClient
  • Reaccionar nativa Android SyntaxError: Se ha intentado redefinir la propiedad 'clave'
  • MultipartEntity y Json
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.