Ошибка java .lang.IllegalArgumentException: неверное начало или конец - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь протестировать Call API Rest Rest от Salesforce, который имеет OAuth-аутентификацию через код Apex и работает с приведенной ниже ошибкой Line: 12, Column: 1 System.UnexpectedException: java.lang.IllegalArgumentException: invalid start or end

public with sharing class RetrieveD365Data {
    //@future (callout=true)
    public void getD365Data() {
        RetrieveAzureToken atz = new RetrieveAzureToken();
        String bearer = atz.getAzureData();
        Http http = new Http();
        HttpRequest req1 = new HttpRequest();
        req1.setEndpoint('https://dev-xyz.com/data/Customers');
        req1.setMethod('GET');
        req1.setHeader('Authorization','Bearer '+bearer);
        HttpResponse res1 = http.send(req1);           //Error is thrown in this line
        System.debug('Response Body=========' + res1.getBody());
    }
}

Где класс RetrieveAzureToken подобен приведенному ниже и это работает, как и ожидалось, и я могу вернуть ответ с токеном на предъявителя

global class RetrieveAzureToken {

    private final String clientId = 'xxxxxxxxx';
    private final String clientSecret = 'xxxxxxxxxx';

    public String getAzureData()
    {
        String reqbody = 'grant_type=client_credentials&client_id='+clientId+'&client_secret='+clientSecret;
        Http h = new Http();
        HttpRequest req = new HttpRequest();
        req.setBody(reqbody);
        req.setMethod('POST');
        req.setEndpoint('https://login.microsoftonline.com/tenant/oauth2/token');
        HttpResponse res = h.send(req);
        deserializeResponse resp1 = (deserializeResponse)JSON.deserialize(res.getbody(),deserializeResponse.class);
        system.debug('Token from Azure :' + resp1.access_token);  
        return  resp1.access_token;
    }

    public class deserializeResponse
    {
        public String token_type;
        public String expires_in;
        public String ext_expires_in;
        public String expires_on;
        public String not_before;
        public String resource;
        public String access_token;
    }
}

Пожалуйста, позвольте мне выяснить, что мне здесь не хватает.

...