Невозможно запустить задание Дженкинса через код Java - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь вызвать работу Дженкинса через код Java. Я получил исходный код в Интернете. Я не могу заставить его работать. Я получаю сообщение "Сервер вернул код ошибки HTTP 403"

Пожалуйста, найдите образец кода:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;
import java.util.Base64;import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.AuthCache;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class JenkinsScraper {
    public static void main(String[] args) throws ClientProtocolException, IOException{


        try {
            URL url = new URL ("http://localhost:8080/job/SampleJob/build");
            String encoding = Base64.getEncoder().encodeToString(("admin:admin").getBytes());

            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");
            connection.setDoOutput(true);
            connection.setRequestProperty  ("Authorization", "Basic " + encoding);
            InputStream content = (InputStream)connection.getInputStream();
            BufferedReader in   = new BufferedReader (new InputStreamReader (content));
            String line;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

Я даже пытался следовать этому URL , чтобы вызвать работу Дженкинса через командную строку, но я новичок, которого я не понимаю.

Я что-то упускаю здесь. Любой совет по этому вопросу будет полезен. Любой рабочий пример был бы великолепен. Заранее спасибо.

1 Ответ

0 голосов
/ 18 октября 2018

Вы должны передать свойства, перечисленные ниже, и внести изменения в конфигурацию Jenkins. Задайте токен с некоторым значением в конфигурации Jenkins для параметра «Удаленная сборка триггера», используйте это значение в параметре запроса URL-адреса Jenkins

connection.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
connection.setRequestProperty("Accept-Language", "en-US");
connection.setRequestProperty("Accept-Encoding", "gzip, deflate");

enter image description here

...