gpt4 book ai didi

session ID 问题 : Different id for vf and developer console

转载 作者:行者123 更新时间:2023-12-02 04:54:18 25 4
gpt4 key购买 nike

我面临以下问题:在加载 visualforce 页面时,我正在对内部 salesforce 页面进行 http 标注,但在这里我面临身份验证问题。

如果我从开发人员控制台运行相同的 http 标注,那么我会得到成功的响应,但相同的代码不适用于 visualforce 页面。不工作的原因是我在开发者控制台和 visualforce 域中的 session ID 不同。

为了获取 session ID,我使用“UserInfo.getSessionId()”

我也试过 {!$Api.Session_ID} 但没有用

我的 Controller :

public with sharing class HttpRequestForPage
{
public HttpRequestForPage()
{
requestForPage('https://ap1.salesforce.com/home/home.jsp');
}
public void requestForPage(String pageUrl)
{
HttpResponse responseOfPage;
String responseString;
HttpRequest request = new HttpRequest();
request.setMethod('GET');
request.setEndpoint('https://ap1.salesforce.com/home/home.jsp');
request.setHeader('Cookie', 'sid='+UserInfo.getSessionId());

try
{
responseOfPage = new Http().send(request);
}
catch(Exception e)
{
system.debug(e);
}
responseString = responseOfPage.getBody();
System.debug(responseString=='+responseString);

}
}

最佳答案

与其为 session 设置 cookie,不如尝试使用授权 header 。

request.setHeader('Authorization','Bearer '+UserInfo.getSessionId());

您还需要在远程站点设置中将 ap1.salesforce.com 设置为端点。


如果您从 Salesforce 中请求页面,您可以只使用 PageReference getContent()方法。

PageReference home = new PageReference('https://ap1.salesforce.com/home/home.jsp');
blob homeblob = home.getContent();
string homeContent = homeblob.toString();

关于 session ID 问题 : Different id for vf and developer console,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24449782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com