没有浏览器的Http POST / GET?

时间:2015-03-19 17:25:08

标签: java http

我在服务器上设置了一些内容,这样每当您访问该页面时,如果您的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();

数据库没有添加任何内容。

我在这里找不到什么东西?

1 个答案:

答案 0 :(得分:2)

虽然你肯定可以用vanilla Java API做到这一点,但是真的没有必要重新发明轮子。相反,请使用经过验证的Apache HTTP Client。它将为您管理连接池,超时设置和其他细节。示例代码可以直接在提供的链接上获得,因此无需在此处复制它。如果您使用的是Spring,则应考虑使用Spring's REST client代替。

在任何情况下,您似乎都在GET请求中插入内容,这是一个糟糕的主意。 GET意味着获取东西,而不是创建或更新。包括所有客户端,浏览器,期望GET是幂等的。此外,您似乎没有任何安全性,任何人都可以在您的数据库中插入内容。这两个主题都超出了范围,但请注意。