Error while updating Jenkins job config using Rest API

16 views
Skip to first unread message

Kruti Vyas

unread,
Dec 20, 2016, 7:39:20 AM12/20/16
to Jenkins Users
I am trying to change the configuration of a job using Jenkins' rest api using my java code but my code is not able to connect to jenkins url. My code is showing 403 http response while connecting. Please suggest me the changes so that I can update my job without restarting the jenkins. I am using jenkins 2.19.4 version.

try
   
{
       
String fileDir = "D:\\"; // upload directory
         
String fileName = "config.xml";
          URL url
= new URL("http://myjenkins/job/test/config.xml"); // Jenkins URL localhost:8080, job named 'test'

         
String user = "username"; // username
         
String pass = "password"; // password or API token
         
String authStr = user +":"+  pass;
         
String encoding = DatatypeConverter.printBase64Binary(authStr.getBytes("utf-8"));

         
HttpURLConnection connection = (HttpURLConnection) url.openConnection();

          connection
.setReadTimeout(10000);
          connection
.setConnectTimeout(15000);
          connection
.setRequestMethod("POST");
          connection
.setUseCaches(false);
          connection
.setDoInput(true);
          connection
.setDoOutput(true);
          connection
.setRequestProperty  ("Authorization", "Basic " + encoding);

         
try
         
{

             
String filePath = "D:\\config.xml";
             
FileInputStream inputStream = new FileInputStream(new File(filePath));
             
FileReader fr = new FileReader(new File(filePath));
             
BufferedReader br = new BufferedReader(fr);

               
String sCurrentLine;
               
System.out.println(sCurrentLine = br.readLine());
             
OutputStream os = connection.getOutputStream();

               
BufferedWriter writer = new BufferedWriter(
                       
new OutputStreamWriter(os, "UTF-8"));
               
while ((sCurrentLine = br.readLine()) != null) {
                   
//System.out.println("not going inside!!!!");
                    writer
.write(sCurrentLine);
                   
System.out.println(sCurrentLine);
               
}
                writer
.flush();
                writer
.close();
                os
.close();
               
int responseCode=connection.getResponseCode();
               
System.out.println(responseCode);                
         
}
         
catch(Exception e)
         
{
              e
.printStackTrace();
         
}

   
}
   
catch(Exception e)
   
{
        e
.printStackTrace();
   
}


Victor Martinez

unread,
Dec 20, 2016, 12:25:43 PM12/20/16
to Jenkins Users
Reply all
Reply to author
Forward
0 new messages