Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
1 / 1 / 0
Регистрация: 12.06.2011
Сообщений: 68
1

Посылка данных на чужой сервер через http post - проблема

27.09.2011, 03:19. Показов 3357. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет!

Есть вот такой код:
Java
1
2
3
4
5
6
7
8
9
10
URL url = new URL(hostString);
HttpURLConnection urlConnector = (HttpURLConnection)url.openConnection();
  
urlConnector.setDoOutput(true);
urlConnector.setRequestMethod('POST');
DataOutputStream dos = new DataOutputStream(urlConnector.getOutputStream());
dos.writeBytes(<всякие данные>);
dos.writeBytes('
');
dos.close();
Все улетает. Но! Пока я не добавлю вот это:
Java
1
2
InputStream is = urlConnector.getInputStream();
// ...
на том сервере информация не появляется. При этом самое интересное, после открытия потока я всегда получаю одно и тоже:
java.io.IOException: Server returned HTTP response code: 500 for URL: http: ......
Что за дела? Ну, с ошибкой - фиг с ней, а вот почему я должен ждать открытия потока? Это:
1. Так и надо.
2. Мой код - полный отстой.
3. Что-то не в порядке с сервером.
4. Это что-то другое
5. А фиг его знает.

нужное подчеркнуть :-)

Никто не поможет?

Заранее благодарен!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2011, 03:19
Ответы с готовыми решениями:

http server,http сервер, post
Необходимо реализовать функцию post для http сервера Косяк как принимать сообщение отправленное -...

Отправка данных JSON через POST-запрос на сервер https
Прошу помочь, может кто имел опыт отправки и получения данных посредством json через POST-запрос на...

Отправка файла на сервер http post запросом
Здравствуйте. Задача следующая - нужно отправить HTTP POST запрос, содержащий несколько переменных...

Как проксировать чужой сайт (https) через свой сервер (домен)?
Добрый день. Есть свой домен, хостинг (на нём nginx) и пустой index.html (все доступы/управлялки)....

5
1 / 1 / 0
Регистрация: 02.08.2011
Сообщений: 64
27.09.2011, 08:25 2
Наверное, не стоит вызывать dos.close(), так как это (javadoc) 'may free network resources associated with this instance'. Вместо этого можно попробовать вызвать dos.flush().

Ещё можно проверить, что же на самом деле происходит на сервере. Посмотреть, что за запрос на самом деле туда приходит и откуда берётся код 500.

Это всё на правах гипотезы, так как я сам никогда не использовал HttpURLConnection. Вместо этого рекомендую jakarta commons HTTPClient - более удобная библиотека для работы с HTTP, потому как ближе к ключевым абстракциям протокола, чем механизм URLConnection.
0
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
27.09.2011, 19:23 3
наверное, 1, потому что ничего никуда не улетает пока инпут не откроете. А почему так, то 5.
0
1 / 1 / 0
Регистрация: 12.06.2011
Сообщений: 68
27.09.2011, 23:47  [ТС] 4
>>Наверное, не стоит вызывать dos.close(), так как это (javadoc) 'may
...
>>можно попробовать вызвать dos.flush().
Наверное, не поможет, мне уже некогда проверять, но в пользу этого предположения то, что httpclient в результате отсылки тоже возвращает поток на чтение, скорее всего действительно п.1

>>Ещё можно проверить, что же на самом деле происходит на сервере.
>>Посмотреть, что за запрос на самом деле туда приходит и откуда
>>берётся код 500.
Я, конечно, могу предположить, что он где-то в Северное Америке (или tracert посмотреть), но вряд ли мне станет от этого легче. :-)

>>Это всё на правах гипотезы, так как я сам никогда не использовал
...
>>ближе к ключевым абстракциям протокола, чем механизм URLConnection.
Да, спасибо, я так и сделал, у нас в другом проекте он используется.
0
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
28.09.2011, 04:10 5
Это нормальное поведение, потому что http предполагает схему запрос-ответ. Пока клиент не продемонстрировал готовность принимать ответ (не открыл инпут), то и нет смысла открывать сокет и слать запрос на сервер.
0
1 / 1 / 0
Регистрация: 12.06.2011
Сообщений: 68
28.09.2011, 22:38  [ТС] 6
Ну вот все и прояснилось, спасибо.
0
28.09.2011, 22:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2011, 22:38
Помогаю со студенческими работами здесь

Работа с Dropbox через HTTP (GET/POST)
Задача: работать с Dropbox(скачивать/закачивать файлы) через Dropbox API с помощью HTTP запросов. Я...

Как отправлять через HTTP POST? ESP32
Всем привет. Никак не разберусь, как отправлять через HTTP POST изображение кодированное через...

Русский Post запрос в базу через http
Кто в курсе этого метода связи с БД на удаленном сервере, как через POST отправить переменные с...

Посылка http запроса.
socket только сегодня начал учить. Хочу получить от сайта html код. Вот программа: #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru