Using java.net.URLConnection
The URLConnection class offers several methods to communicate with the URL over the network. We can use this class for reading and writing directly to the resource referenced by the URL.
The following program retrieves an URLConnection object by invoking the openConnection() method on an URL and gets an input stream by calling getInputStream().
POST Multipart Запрос
Теперь давайте ОТПРАВИМ запрос на несколько частей.
Мы опубликуем Файл , имя пользователя и пароль с использованием Многокомпонентный конструктор :
Как отправить запрос авторизации на сервер используя java
Как отправить запрос авторизации на сервер используя java. Можно использовать сторонние библиотеки Apache HttpComponents (Apache HTTPClient), Jersy, Selenium, даже фраемворк Spring :3 .
Воспользовался кодом @SeniorPomidor -а
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Base64;
import java.util.Scanner;
public class Program {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.print("В ведите логин: ");
String login = sc.nextLine();
System.out.println(login);
System.out.print("В ведите пароль: ");
String password = sc.nextLine();
System.out.println(password);
System.out.print(getRest("http://n7701-sys253:8080/secure/Dashboard.jspa", login, password));
}
public static String getBase64(String USERNAME, String PASSWORD){
return Base64.getEncoder().encodeToString((USERNAME ":" PASSWORD).getBytes());
}
public static String getRest(String request, String login, String password) {
String res = "";
try {
URL url = new URL(request);
String encoding = getBase64(login, password);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.setRequestProperty("Authorization", "Basic " encoding);
InputStream content = connection.getInputStream();
BufferedReader in =
new BufferedReader(new InputStreamReader(content, "utf-8"));
String line;
while ((line = in.readLine()) != null) {
res = line "n";
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return res;
}
}
Заменил строку
System.out.print(getRest("http://n7701-sys253:8080/secure/Dashboard.jspa", login, password));
на
System.out.print(getRest("http://n7701-sys253:8080/rest/api/2/issue/", login, password));
Результат ошибка 405 :
java.io.IOException: Server returned HTTP response code: 405 for URL: http://n7701-sys253:8080/rest/api/2/issue/
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at zapr_and_atswer.Program.getRest(Program.java:45)
at zapr_and_atswer.Program.main(Program.java:27)
Подставляю свою задачу (реиндекс) :
System.out.print(getRest("http://n7701-sys253:8080/rest/api/2/reindex?type=FOREGROUND&indexComments=true&indexChangeHistory=true&indexWorklogs=true", login, password));
Получаю результат :