所以我有一个问题,如果我在浏览器上键入此链接并按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();
}
}
有什么问题?
答案 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”请求方法,只需将参数附加到网址。