400 Bad Request while updating an issue via REST API

Here is the code that I am attempting to use:

global class SalesforceJiraUpdate {
    public string endpoint='https://xxx.atlassian.net/rest/api/2/issue/';             //JIRA URL
    public String username = 'xxx';        // JIRA username
    public String password = 'xxx';       // JIRA password

    @future(callout=true)
    public static void updateIssue(string key,string summary,string description,string Jiraid){
        key = Jiraid;
        new SalesforceJiraUpdate(key,summary,description,Jiraid);
    }


    public String authHeader(){
        Blob headerValue = Blob.valueOf(username+':'+password);
        return 'Basic ' + EncodingUtil.base64Encode(headerValue);
    }

    public SalesforceJiraUpdate(string key,string summary,string description,string Jiraid){
        HttpRequest req = new HttpRequest();
        Http http = new Http();
        req.setMethod('PUT');

        //Set HTTPRequest header properties

        endpoint+=+key;
        req.setHeader('Accept', 'application/json');
        req.setHeader('Content-Type','application/json');
        Blob headerValue = Blob.valueOf(username+':'+password);
        req.setHeader('Authorization','Basic '+ EncodingUtil.base64Encode(headerValue));
        req.setEndpoint(endpoint);
        system.debug('the endpoint is :'+endpoint);


        String UpdateIssueJson= '{"update": {"summary":[{"set":"'+summary+'"}],"description":[{"set":"'+description+'"}], "issuetype":[{"set" :{"name": "Bug"}}]}}';

        String JSONData = JSON.serializePretty(UpdateIssueJson);
        req.setBody(UpdateIssueJson);
        system.debug('after response....'+UpdateIssueJson);

        try{
            //Execute web service call here
            HTTPResponse res = http.send(req);
            String ResponseJsonString = res.getBody();
            System.debug('ResponseJsonString '+res);

        }
        catch(System.CalloutException e){
            System.debug('Callout error: '+ e);
        }
    }
}

4 answers

This widget could not be displayed.

Hi Robert, there was issue in framing the Json. I have solved it.

String upJson= '{"fields":{"summary":"'+summary+'","description":"'+description+'"}}';

 

Thanks

Abhishek

This widget could not be displayed.

Have you tried to get a locally running JIRA and use the Rest API Browser to make your requests?

This widget could not be displayed.

Robert, am able to create an Issue in JIRA, while updating it response is Bad request and 400 error.

This widget could not be displayed.

I have tried to duplicate this using Postman on my local machine and have not had an issue:

Screen Shot 2016-02-05 at 9.15.40 am.png

From here I can only think of only two potential issues:

  • does the Issue that you are trying to set the Issue Type of to "Bug" exist inside a project that has the issue type "Bug"?
  • Can you please use a JSON library to build your JSON? If summary or description contain strings that make for invalid JSON then you will get a bad request instead.

Those are the only two issues that I can think of right now that might cause this behaviour. Please tell me if that works / helps. Otherwise, can you please provide screenshots of the Issue that you are trying to update and the contents of the variables that you are setting for your application? Cheers.

Suggest an answer

Log in or Sign up to answer
Atlassian Summit 2018

Meet the community IRL

Atlassian Summit is an excellent opportunity for in-person support, training, and networking.

Learn more
Community showcase
Posted Wednesday in New to Jira

Are you planning to trial, or are currently trialling Jira Software? - We want to talk to you!

Hello! I'm Rayen, a product manager at Atlassian. My team and I are working hard to improve the trial experience for Jira Software Cloud. We are interested in   talking to 20 people planning t...

225 views 3 0
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you