模拟在java上输入的URL

时间:2014-09-19 11:43:06

标签: java

所以我有一个问题,如果我在浏览器上键入此链接并按Enter键,则会发生激活。我只想通过Java做同样的事情。我不需要URL的任何响应。它应该与在浏览器上输入URL一样。目前我的代码没有抛出错误,但我不认为它的工作原因是激活没有发生。我的代码:

        public static void enableMachine(String dns){
     try {
            String req= "http://"+dns+"/username?username=sputtasw";
            URL url = new URL(req);
            URLConnection connection = url.openConnection();
            connection.connect();
            /*BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
            String strTemp = "";
            while (null != (strTemp = br.readLine())) {
                System.out.println(strTemp);
            }*/
        } catch (Exception ex) {
            ex.printStackTrace();
        }
}

有什么问题?

2 个答案:

答案 0 :(得分:1)

如果您想使用URLConnection进行此操作,仅使用connect打开连接是不够的,您还必须发送例如HTTP请求等。

那就是说,如果你使用像Apache HttpComponents(http://hc.apache.org/)那样的HTTP客户端,我认为会更容易。只需使用HTTP客户端执行GET请求,这与使用浏览器访问页面相同(这些客户端通常也支持重定向等)。

答案 1 :(得分:0)

您可以使用HttpUrlConnectionClass来完成这项工作:

URL url = new URL("http://my.url.com");
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setRequestProperty("Content-Type", "application/json");
httpCon.setDoOutput(true);
httpCon.setRequestMethod("POST");

String params = "foo=42&bar=buzz";

DataOutputStream wr = new DataOutputStream(httpCon.getOutputStream());
wr.writeBytes(params);
wr.flush();
wr.close();

httpCon.connect();

int responseCode = httpCon.getResponseCode();

您也可以使用“GET”请求方法,只需将参数附加到网址。