命名证书

时间:2018-01-12 07:53:16

标签: salesforce integration

我想访问指定凭据的URL,并希望动态地向其添加一些查询参数。可能吗?就像自定义设置一样,我通过get值直接访问该值。指定的凭证全局变量凭证是否为我提供了这样的机会?

1 个答案:

答案 0 :(得分:0)

请参阅此处的文档:

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_callouts_named_credentials.htm

使用此示例:

HttpRequest req = new HttpRequest();
req.setEndpoint('callout:***My_Named_Credential***/some_path');

只要您的指定凭据URL包含协议,子域(如果需要),主机名和端口(需要ID),您就可以附加路径,参数或片段。

例如:

Map<String, String> urlParameters = new Map<String, String>{'client_id','12345'};
String urlParameterString = '';
for (String param : urlParameters.keySet()) {
    urlParameterString += param+'='+urlParameters.get(param);
}

HttpRequest req = new HttpRequest();
req.setEndpoint(
    String.format(
        'callout:GoogleAPI/{0}?{1}#{2}',
        new String[]{'oauth2', urlParameterString, 'anchorId'}
    )
);

如果指定的凭据网址为:

https://api.google.com

那个端点应该是这样的:

https://api.google.com/oauth2?client_id=12345#anchorId