簡體   English   中英

從 Saleforce 調用 API 給出錯誤代碼 500

[英]Calling API from Saleforce is giving error code 500

我有一個REST API可以從 Salesforce 撥出。

API 的授權是通過訪問令牌。

我能夠通過 Salesforce 中的 POST 請求獲取訪問令牌。還通過該令牌從Postman進行了測試,並能夠獲得成功的響應。

我正在使用以下代碼使用訪問令牌標注 API:

    String endpoint_x = '*****';//Putting my endpoint here
    Http httpObject;
    HttpResponse response;
    String accessToken;
    accessToken = MyUtilityClass.getAccessToken();
    jsonBody = json.serializePretty('', true);//Yes, My JSON is empty
         
    HttpRequest request = new HttpRequest();
        
    request.setEndpoint(endpoint_x);
        
    request.setHeader('Authorization', 'Bearer '+accessToken);
        
    request.setMethod('POST');
    request.setBody(jsonBody);
        
        
    httpObject = new Http();
    response = httpObject.send(request);
    System.debug('Response=' + response);

獲取響應值如下:

System.HttpResponse[Status=Internal Server Error, StatusCode=500]
        

我試過將“{}”放入 Jsonbody。 在 header 中添加了“內容類型”,但沒有任何效果。

我應該在哪里注意這個?

Postman中,我沒有在體內放入任何東西,並得到了成功的回應。

為了獲得相同的行為,我在 Apex 中使用了空字符串,如下所示:

jsonBody = json.serializePretty('', true);

但是解析器沒有正常工作。

為了解決這個問題,我創建了一個沒有任何字段的 class:

class ClassForEmptyBody{
}

並在序列化程序中使用了 class 中的 object:

ClassForEmptyBody classForEmptyBodyObject = new ClassForEmptyBody();
jsonBody = json.serializePretty(classForEmptyBodyObject , true);

如果里面什么都沒有,你為什么要傳遞 json 身體。 只需跳過 setbody 代碼並嘗試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM