HTTPInternalServerError при доступе к опубликованной электронной таблице Документов Google с помощью Ruby - PullRequest
0 голосов
/ 02 ноября 2011

Мы на Rails 3.0.6, Ruby 1.8.7.

Код:

url = 'https://docs.google.com/spreadsheet/pub?hl=en_US&hl=en_US&key=0Ala-Qy5xnYGFdE83bng2RC0yTVFVUDVfNW5NV2hwc1E&output=csv'
uri = URI.parse url
req = Net::HTTP::Get.new uri.path

http = Net::HTTP.new uri.host, uri.port
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
http.use_ssl = true
response = http.request req
puts response

Выход:

#<Net::HTTPInternalServerError:0xc80edb8>
<!DOCTYPE html><html lang="en">
     <head>
         <meta name="description" content="Web word processing, presentations and spreadsheets" />
         <link rel="shortcut icon" href="//www.google.com/images/icons/product/spreadsheets-16.png" />
         <title>Google Docs Error</title>
         <style type="text/css">body {background-color: #fff; font-family: Arial,sans-serif; font-size: 13px; margin: 0; padding: 0;}a, a: link, a: visited {color: #112ABB;}</style>
         <style type="text/css">.errorMessage {font-size: 12pt; font-weight: bold; line-height: 150%; padding-top: 25px;}</style>
      </head>
      <body>
          <div style="padding: 8px;">
              <a href="//docs.google.com/">
                  <img border="0" id="docs-logo" src="//ssl.gstatic.com/docs/common/logo/docs_logo.gif" width="122" border="0" alt="">
              </a>
          </div>
          <center>
              <table>
                  <tr>
                      <td>
                          <p style="padding-top: 15px">Google Docs has encountered a server error. If reloading the page doesn't help, please <a href="http://docs.google.com/support/bin/request.py?hl=en&ctx=docs&contact_type=server_error">contact us</a>.</p>
                          <p>We&#39;re sorry, a server error occurred. Please wait a bit and try reloading your spreadsheet.<br>
                             To discuss this or other issues, visit the <a href="http://www.google.com/support/forum/p/Google+Docs?hl=en">Google Docs Help forum</a>. To see the list of known problems, check the <a href="http://docs.google.com/support/bin/static.py?hl=en&page=known_issues.cs">Google Docs Known Issues page</a>.</p>
                          <p><br><b>Sorry, and thanks for your help!</b><br>
                             <i>- The Google Docs Team</i></p>
                     </td>
                 </tr>
            </table>
        </center>
    </body>
</html>

Ответ предполагает, что это ошибка сервера Google, но мы не можем представить, что он задыхается от такого обычного вызова.

Таблица публикуется и, таким образом, доступна всем, у кого есть ссылка.

Мы что-то не так делаем?

1 Ответ

0 голосов
/ 03 ноября 2011

Попробуйте

требуется 'net / https'

url = 'https://docs.google.com/spreadsheet/pub?hl=en_US&hl=en_US&key=0Ala-Qy5xnYGFdE83bng2RC0yTVFVUDVfNW5NV2hwc1E&output=csv'

uri = URI.parse url

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(uri.request_uri)

response = http.request(request)
puts response.body
...