2013-06-04 19 views
6

Tôi có các ứng dụng sử dụng API Google Documents. Cho đến gần đây, việc tải lên bằng cách sử dụng các điểm cuối HTTP đã hoạt động tốt. Gần đây, việc tải lên đột nhiên bắt đầu bị lỗi. Cuộc gọi đầu tiên để tạo phiên (trả về URL có thể tiếp tục) hoạt động tốt và trả lại URL có thể tiếp tục lại. Cố gắng để sau đó gửi các nội dung tập tin vào URL resumable ném một 503.API Google Documents trả về Dịch vụ 503 Không khả dụng khi tải lên tệp. Có điều gì đó đã thay đổi?

Phần liên quan của mã ném lỗi là thế này:

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

Đoạn mã trên được sử dụng cho cả việc tạo ra phiên để có được URL có thể tiếp tục cũng như đăng nội dung tệp lên URL có thể tiếp tục lại.

Đó là một phần của this Hoạt động trên Android. Tôi bao gồm một liên kết đến hoạt động ban đầu vì nó có thể sẽ khá dễ dàng để tái tạo vấn đề bằng cách đơn giản nhân bản kho lưu trữ. Mã này vẫn bị ảnh hưởng trong một năm.

Có điều gì đó đã thay đổi gần đây sẽ gây ra điều này?

Tôi muốn tránh phải sử dụng API của Google Drive bây giờ vì tôi đã không thay đổi bất kỳ mã nào và mã giống nhau đang được sử dụng trong một vài ứng dụng khác của tôi trong trường.

+0

Bạn đã thử một tài khoản Google khác chưa? Kể từ một hoặc hai tháng trước, tài khoản của tôi (và dường như một vài người khác) đã trả về 503 lỗi ServiceUnavailable từ các dịch vụ GData của Google. Trong trường hợp của tôi, YouTube và Google Play Phim hoàn toàn bị hỏng -> https://productforums.google.com/forum/?fromgroups#!topic/youtube/IsDSzuY8NbE Phản hồi thô từ API YouTube/Phim là "ServiceNotAvailable" với một loại "GData" và mã trạng thái là 503: ( –

+0

Theo dõi Fiddler của tôi có trong vấn đề này: https://code.google.com/p/gdata-issues/issues/detail?id=4597 –

Trả lời

0

Một trong những "tính năng" khó chịu nhất là giới hạn tốc độ không có giấy tờ khi yêu cầu hình ảnh, mỗi yêu cầu phải được xác thực. Giới hạn tốc độ xuất hiện khoảng 10/s.

0

Bạn có thể đang sử dụng Google API v2 hiện không còn được dùng nữa. Đọc bài đăng bên dưới:

https://developers.google.com/google-apps/documents-list/terms