Как скачать файл с сервера с помощью Java Socket? - PullRequest
0 голосов
/ 21 декабря 2010

У меня есть задание о загрузке и загрузке файла на сервер. Мне удалось выполнить загрузку с использованием Java-сокетов, но мне трудно выполнять загрузку. Я должен использовать Range: для загрузки parellel. В моем запросе у меня должен быть заголовок Range :. Но я не понимаю, как я получу файл с этим запросом HTTP GET. Все примеры, которые я видел, были о загрузке файла. Я уже сделал это. Я могу загрузить .exe, изображение, .pdf, что угодно, и когда я загружаю их обратно (через браузер), ошибок нет. Можете ли вы помочь мне с загрузкой? Можете ли вы дать мне пример, потому что я действительно не понял.

Ответы [ 3 ]

0 голосов
/ 21 декабря 2010

Это не дает прямого ответа на ваш вопрос, но в любом случае (IMO) стоит сказать ...

Если ваше домашнее задание не специально говорит , что вам следует использовать сокетнапрямую, есть более простые и лучшие способы загрузки и выгрузки файлов HTTP в Java:

  • Использование java.net.URL.openConnection() на URL "http:" дастВы HttpURLConnection, которые можно использовать для выполнения запросов GET, PUT, POST и т. д. к удаленному серверу.Это позаботится об основных вещах протокола HTTP для вас.

  • Библиотеки Apache HttpClient делают то же самое, но более сложным способом, с большим количеством опций ибольше хуков для таких вещей, как обработка контента (включая формы и мультимедиа MIME), управление подключениями и учетными данными, проксирование и поиск маршрутов и т. д.Если вы используете практические способы общения с удаленными серверами, то использовать эти классы гораздо практичнее, чем пытаться реализовать подмножество протокола HTTP от уровня сокетов до уровня.

    (Конечно, цель могла бы чтобы дать вам более глубокое понимание протокола HTTP на "проводном" уровне ... что сделает ваш текущий подход правильным.)

0 голосов
/ 26 декабря 2010

Спасибо, я сделал это. Я использовал байтовый массив, прочитал входной поток и записал его в файл, используя fileinputstream и fileoutputstream

0 голосов
/ 21 декабря 2010

Вам нужно прочитать HTTP-ответ из того же сокета, в который вы поместили запрос. Для начала просто распечатайте его. Когда вы будете знакомы с ним, начните его разбор. Файл будет там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...