Я использую java.net для отправки HTTP-запросов в моем Java-клиенте, и я до сих пор не могу понять/найти, как реально запустить запрос.java.net Как запустить HTTP-запрос
Например, у меня есть этот код:
Scanner sc = new Scanner(System.in);
System.out.println("Deleting subject...");
System.out.println("Subject shortcut (-1 for return):");
String shortcut = sc.next();
if(shortcut.equals("-1"))
return ;
try
{
URL url = new URL("http://localhost:8080/Server/webresources/subject/delete/"+shortcut);
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setDoOutput(true);
con.setRequestMethod("DELETE");
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
System.out.println(br.readLine());
}catch(Exception e)
{
System.out.println(e.getMessage());
}
В этом коде, если я не использую эти строки:
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
System.out.println(br.readLine());
запрос никогда не передается. Поэтому в этом случае запрос кажется триггером, вызвав InputStream из соединения.
Может ли кто-нибудь объяснить мне, как HTTP-запрос через java.net запущен?
Возможный дубликат [Использование java.net.URLConnection огонь и обрабатывать HTTP-запросы] (http://stackoverflow.com/questions/2793150/using-java-net-urlconnection-to-fire-and -handle-http-запросы) – Michael
Первый ответ на этот вопрос идет довольно подробно. В принципе, вы правы, что запрос отправляется при чтении из входного потока. – Michael
@Michael URLConnection # connect() как написано в теме, которую вы только что опубликовали, не работает. – scarface