Я работал над этим весь день и не нашел нигде с ним.
Мой код Java выглядит так:
final URL url = new URL(String.format("https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=%s&exportFormat=tsv&gid=0", spreadsheetId));
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Authorization", "GoogleLogin auth=" + wiseAuth.getAuthToken());
conn.setRequestProperty("GData-Version", "3.0");
conn.setRequestMethod("GET");
conn.setDoOutput(true); // trouble here, see below
conn.setInstanceFollowRedirects(true);
conn.connect();
Я всегда получаю ошибку FileNotFound при попытке сделать conn.getInputStream()
.Я сузил это до того, что код ответа 405 Метод не разрешен.Исключением является возвращение мне моего URL-адреса, и я могу нормально обращаться к странице в своем браузере.
Именно тогда я обнаружил, что setDoOutput(true)
выполняет POST внутри.Но если я удалю эту строку, conn.getInputStream()
будет нулевым, а conn.getOutputStream()
, кажется, ничего не возвращает - хотя, может быть, я неправильно ее настраиваю?