如何从java下载renderas ='pdf'visualforce页面?

时间:2013-03-25 16:02:25

标签: salesforce

阅读此页面http://www.forcedisturbances.com/2012/07/downloading-visual-force-pages-that-are.html,我尝试过这段代码,但它似乎对我不起作用。

ConnectorConfig config = new ConnectorConfig();
config.setUsername(USERNAME);
config.setPassword(PASSWORD);
connection = Connector.newConnection(config);

URL url = new URL("https://c.na14.visual.force.com/apex/ReportPrintOut?id=");
url.openConnection().addRequestProperty("Authorization", "Bearer " + config.getSessionId());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();

我可以验证salesforce连接器对象是否成功,因为我没有抛出无效的登录异常,我可以成功查询数据。从URL调用获取的url数据如下,表示会话ID存在问题。但是我无法弄清楚问题是什么。

HTTP Code: 200
<script>
if (window.location.replace){ 
    window.location.replace('https://login.salesforce.com/?ec=302&startURL=%2Fvisualforce%2Fsession%3Furl%3Dhttps%253A%252F%252Fc.na14.visual.force.com%252Fapex%252FReportPrintOut%253Fid%253D');
} else {;
    window.location.href ='https://login.salesforce.com/?ec=302&startURL=%2Fvisualforce%2Fsession%3Furl%3Dhttps%253A%252F%252Fc.na14.visual.force.com%252Fapex%252FReportPrintOut%253Fid%253D';
} 
</script>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</head>
</html>

1 个答案:

答案 0 :(得分:0)

我能够通过替换

来解决这个问题
url.openConnection().addRequestProperty("Authorization", "Bearer " + config.getSessionId());

通过

url.openConnection().setRequestProperty("Authorization", "Bearer " + config.getSessionId());