2013-06-04 13 views
6

私はGoogle Docs APIを利用するアプリケーションを持っています。最近まで、HTTPエンドポイントを使用したアップロードは正常に機能していました。最近、アップロードが突然エラーになりました。セッションを作成する最初の呼び出し(再開可能なURLを返す)は正常に動作し、再開可能なURLを返します。その後、再開可能なURLへのファイルの内容を送信しようとすると、エラーを投げるコードの関連部分はこれです503ファイルをアップロードするときにGoogle Docs APIが503サービスを使用できません。何か変わった?

スロー:

 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"); 

上記のコードでは、取得するには、セッションを作成するための両方に使用されています再開可能なURLにファイルの内容を投稿することができます。

this Android用アクティビティの一部です。リポジトリを単純に複製するだけで、問題を再現するのがかなり簡単なので、元のアクティビティへのリンクを含めています。コードは1年間そのまま残っています。

これが原因で最近何か変更されましたか?

GoogleドライブのAPIを使用しなくてもいいようにしたいのですが、コードを変更していないため、他のいくつかのアプリケーションで同じコードが使用されています。

+0

別のGoogleアカウントを試しましたか? 1〜2ヵ月前から、GDataのGoogleサービスから、私のアカウント(と思われる人たちのうちのいくつかの人たち)が503のServiceUnavailableエラーを返しました。私の場合、YouTubeとGoogle Playムービーは完全に破棄されています - > https://productforums.google.com/forum/?fromgroups#!topic/youtube/IsDSzuY8NbE YouTube/Movies APIの生のレスポンスは、「ServiceNotAvailable」です。タイプ "GData"とステータスコード503 :( –

+0

My Fiddlerのトレースはこの問題になります:https://code.google.com/p/gdata-issues/issues/detail?id=4597 –

答えて

0

最も厄介な「機能」の1つは、各要求を認証する必要がある画像を要求する際の文書化されていないレート制限です。レート制限は約10/sと思われます。

0

Google API v2を使用している可能性があります。現在、廃止予定です。下記の記事を読んでください:

関連する問題