我正在创建一个带有 salesforce 集成的 iOS 应用程序。iOS 应用程序将通过 http 请求的正文向 salesforce 发送 JSON 数据。如何在 apex 中将正文作为 JSON 字符串获取?
谢谢
我正在创建一个带有 salesforce 集成的 iOS 应用程序。iOS 应用程序将通过 http 请求的正文向 salesforce 发送 JSON 数据。如何在 apex 中将正文作为 JSON 字符串获取?
谢谢
像这样的东西(如果您是从 Apex 中进行调用,否则使用 Web 服务来捕获传入呼叫并以类似方式解析)。
准备您的 HTTP 请求对象:
// Prepare HTTP
HTTPResponse hTTPRes;
HTTPRequest req = new HttpRequest();
req.setTimeout(120000);
设置您的端点:
req.setEndpoint(baseURL + callName + '?' + parameterString);
进行标注:
HTTP http = new HTTP();
String body;
hTTPRes = http.send(req);
body = hTTPRes.getBody();
调用 JSON 解析器并解析结果:
// Invoke JSON parser
JSONParser parser = System.JSON.createParser(body);
// Parse JSON response to get individual field values.
while(parser.nextToken() != null)
{
if((parser.getCurrentToken() == JSONToken.FIELD_NAME) && (parser.getText() == 'yourfield'))
// store values as you walk the JSON
}
您可以在 salesforce.com 中实现一个简单的 REST Web 服务,这非常简单,并且内置了对 JSON 或 XML 消息的支持。查看 APEX 文档的以下页面:
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_rest_methods.htm
此集成的复杂部分是身份验证。无论您使用 REST 还是 SOAP,您都需要一个有效的会话 ID 来进行身份验证。这可以通过调用标准 Web 服务 API 的登录操作或使用更适合 REST 方法但可能相当复杂的 OAuth 来完成。另一个专门针对 iOS 开发的集成选项是 Simon Fell 的 zksForce 框架,它提供了与标准 salesforce.com Web 服务 API 交互的可靠方法:
GitHub 上的 zkSforce