Telnet - błąd żądania GET na Dysku Google


1

Korzystam z systemu Mac OSX i próbuję użyć usługi Telnet do pobrania pliku z dysku Google. Odkryłem, że następujący szablon linku powoduje automatyczne pobranie pliku z dysku google:

http://drive.google.com/uc?id= documentId & export = pobierz

gdzie documentId jest identyfikatorem dokumentu (kombinacja cyfr i liter). Więc idę do terminala, piszę telnet drive.google.com 80i łączę się z serwerem. Następnie piszę GET /uc?id=documentId&export=download HTTP/1.1, naciśnij Enter, wpisz Host: drive.google.com, a następnie naciśnij dwukrotnie klawisz Enter.

Jestem prawie pewien, że poprawnie wykonałem kroki, ale z jakiegoś powodu zawsze otrzymuję kod statusu 302 Przeniesiony tymczasowo . Czy źle wpisałem adres URL, czy są jakieś znaki, które wymagają zmiany znaczenia? Wszelkie sugestie byłyby pomocne.

Odpowiedzi:


1

302 Przeniesiony tymczasowo nie jest błędem . Jest to serwer HTTP informujący, że adres URL jest poprawny, ale rzeczywista treść znajduje się w innym miejscu; na przykład może to być przekierowanie do jednego z serwerów pamięci Google lub prośba o ponowienie próby przez HTTPS.

Poszukaj Location:nagłówka w odpowiedzi i wydaj drugie żądanie HTTP (w razie potrzeby po połączeniu z odpowiednim serwerem).

Jako lepszą alternatywę, spróbuj . (Dodaj, jeśli chcesz zobaczyć żądania HTTP w akcji).curl -L -o <filename> <url>
-v


czy curl jest właściwym poleceniem? Ponieważ używam tylko telnetu do testowania żądania HTTP, które później wykorzystam w programie C ++ do pobrania pliku z Internetu.
rcplusplus

A także, link „Nowa lokalizacja” daje mi to: /uc?id=documentId&amp;export=download, która jest dokładny sama rzecz jak podana odnośniki do oszczędzania ampersand zastępowane przez [!] &amp
rcplusplus

@rcplusplus: Jeśli ma coś innego, to nie jest dokładnie to samo, prawda?
grawity

@rcplusplus: I tak, curljest to rzeczywiste polecenie, ale zawiera również libcurlbibliotekę dla C, która jest bardzo wygodna do pobierania plików przez HTTP, między innymi.
grawity

0

Chcesz korzystać z HTTPS, czy masz jakiś telnet wyposażony w protokół SSL?


Wypróbowałem po swojemu z openssl i zadziałało! Cóż, dało mi HTML z napisem „Tymczasowo przeniesiony”, a następnie miał <a></a>element kierujący mnie do pliku. Wszystko, co robię, to kliknij go, a następnie pliki zostaną pobrane. I ten adres URL jest Location:parametrem w nagłówku odpowiedzi
rcplusplus
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.