在Java程序中调用Salesforce REST API
来源:互联网 发布:没有c基础可以学java吗 编辑:程序博客网 时间:2024/06/06 00:21
Salesforce 提供多种不同的REST API接口以支持客户应用的开发,本文介绍如何在Java程序中使用Apache HttpComponents调用Salesforce REST API。
第一步: 登录Salesforce
首先设置包括Salesforce登录主机和 登录接口URL, 并初始化一个Post请求。
HttpHost target = new HttpHost("login.salesforce.com", 443, "https");String loginURL= "/services/Soap/u/29.0";HttpPost loginPost = new HttpPost(loginURL);
然后设置Post头信息
loginPost.setHeader("content-type", "text/xml"); loginPost.setHeader("charset", "UTF-8"); loginPost.setHeader("SOAPAction", "login");
其后发送一个Post登录请求并接受其响应。
String loginRequestXMLTemplate = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n" + "<env:Envelope\n" +"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"\n" + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" + "xmlns:env=\"http://schemas.xmlsoap.org/soap/envelope/\">\n" + "<env:Body>\n" + " <n1:login xmlns:n1=\"urn:partner.soap.sforce.com\">\n" +" <n1:username>%s</n1:username>\n" + " <n1:password>%s%s</n1:password>\n" + "</n1:login>\n" + "</env:Body>\n" + "</env:Envelope>\n";String loginRequestXML = String.format(loginRequestXMLTemplate, _username, _password, _securityToken);System.out.println("Request...");System.out.println(loginRequestXML);StringEntity input = new StringEntity(loginRequestXML);loginPost.setEntity(input);CloseableHttpResponse loginResponse = httpClient.execute(target, loginPost);HttpEntity entity = loginResponse.getEntity();String response = EntityUtils.toString(entity);EntityUtils.consume(loginResponse.getEntity());loginResponse.close();
获取登录响应之后将其转换为XML结构,并读取sessionId和serverUrl
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document document = builder.parse(new InputSource(new StringReader(response)));Node node = document.getElementsByTagName("sessionId").item(0);sessionId = node.getFirstChild().getTextContent();node = document.getElementsByTagName("serverUrl").item(0);String serverUrlString = node.getFirstChild().getTextContent();serverURL = new URL (serverUrlString);
第二步: 调用List Report REST API
首先设置REST AP接口主机和 List Report REST AP接口URL, 并初始化一个Get请求。
target = new HttpHost(serverURL.getHost(), 443, "https");String listReportURL= "/services/data/v29.0/analytics/reports/";HttpGet reportListGet = new HttpGet(listReportURL);
然后设置Get头信息
reportListGet.setHeader("Authorization", "Bearer " + sessionId);
其后发送Get请求并接受其响应
CloseableHttpResponse reportListResponse = httpClient.execute(target, reportListGet); entity = reportListResponse.getEntity(); response = EntityUtils.toString(entity);
0 0
- 在Java程序中调用Salesforce REST API
- salesforce rest api 登录 | Authenticating to Salesforce using REST, OAuth 2.0 and Java
- salesforce 集成-REST API开发
- Salesforce Integration based on Rest API
- Step-By-Step Guide to Get Started with Salesforce REST API using Java
- JAVA模拟浏览器调用rest api接口
- 在Salesforce中创建Web Service供外部系统调用
- 在Salesforce中使用Javascript调用Apex方法
- 在JAVA程序中调用其他程序
- 在java程序中调用matlab程序
- 在C#中调用django rest framework需要身份认证的api
- C#调用REST API
- C#调用REST API
- magento rest api 调用
- magento rest api 调用!
- magento rest api 调用
- 调用marathon rest API
- 73、salesforce通过JAVA来Call在salesforce中已经写好的Restful处理接口
- block的学习心得
- Spark Standalone 以及 HDFS系统环境搭建
- 次小生成树
- poj 3784 Running Median/sbt
- ListView--1 之 LayoutInfLayout源码分析
- 在Java程序中调用Salesforce REST API
- Anniversary party(树形DP入门)
- http-equiv是什么意思(转载)
- 实例讲解OSGI开发
- FZU2185 树的路径覆盖
- Uncaught RangeError: Invalid string length
- Xtrabackup 流备份与恢复
- 文件描述符fd和文件指针fp之间的相互转换
- 解决运行python脚本一闪而过