2015-03-19 4 views
0

У меня есть что-то настроенное на нашем сервере, так что всякий раз, когда вы посещаете эту страницу, если ваш запрос GET настроен правильно, он добавляет запись в базу данных, отмечая, кто и когда. Я разрабатываю систему, показывающую, взаимодействуют ли наши устройства, и я хочу настроить ее так, чтобы она автоматически делала это каждый час.Http POST/GET без браузера?

Итак, если я помещу что-то вроде «http://example.com/stamptime/default.aspx?playerId=3191121» в мой веб-браузер, он добавит запись в базу данных.

Я искал способ сделать это без браузера. Если я открою его как веб-страницу, он отлично работает. Если я попробую это:

URL url = new URL("http://example.com/StampTime/Default.aspx?playerId=3191121"); 
    HttpURLConnection con = (HttpURLConnection) url.openConnection(); 
    con.setRequestMethod("GET"); 
    con.connect(); 

В базе данных ничего не добавлено.

Есть ли что-то, что мне не хватает здесь?

+5

Вместо того, чтобы писать java-программу для этого, может быть проще использовать curl или wget. – Rob

+0

попытайтесь открыть выходной поток из соединения и сбросить его – vandale

+0

Или используя службу мониторинга, которая будет проверять URL-адрес для вас, отслеживать все виды статистики и т. Д. –

ответ

2

Хотя вы, безусловно, можете сделать это с помощью API-интерфейсов Java, вам не нужно изобретать колесо. Вместо этого используйте проверенные и исправленные Apache HTTP Client. Он будет управлять пулом соединений, настройками тайм-аута и другими мелочами для вас. Код примера доступен непосредственно по ссылке, поэтому нет смысла копировать его здесь. Если вы используете Spring, вам стоит вместо этого использовать Spring's REST client.

В любом случае вы, кажется, вставляете материал в запросы GET, что является ужасной идеей. GET предназначены для получения материала, а не для создания или обновления. Все клиенты, включая браузеры, ожидают, что GET будут идемпотентными. Кроме того, похоже, что у вас нет никакой безопасности и кто может вставить материал в вашу БД. Обе эти темы не входят в сферу действия здесь, но имейте в виду.

Смежные вопросы