Мне интересно, можно ли отправлять заголовки HTTP GET с помощью Java.
В основном я работаю над Java-программой, которая взаимодействует с REST-подобным веб-сервисом. Чтобы имитировать это, я создал небольшой php-файл, который просто выводит все переменные в $_GET
, так что я могу видеть, правильно ли переданы мои переменные заголовка GET.
В php вы можете 'отправлять' переменные получения, используя синтаксис ?key=value
, однако я не уверен, работает ли это для каждой веб-платформы. Поэтому я подумал об отправке этих пар (ключ, значение) в заголовок HTTP GET (если это невозможно или неправильный способ сделать это, не стесняйтесь указывать на это!).
У меня есть следующий код, но ответ от сервера не отображает ни одну из переменных GET, которые я отправляю:
public static void Request(String address, Vector<RequestProperty> props){
URL url = null;
BufferedReader reader = null;
StringBuilder stringBuilder;
try{
url = new URL(address);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
//Add request headers
for(RequestProperty prop : props){
//Here I add the pairs like MyKey = MyValue
connection.addRequestProperty(prop.key, prop.value);
}
connection.setReadTimeout(15000);
connection.connect();
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line = null;
while((line = reader.readLine()) != null){
System.out.println(line);
}
}
catch(Exception ex){
ex.printStackTrace();
}