在Salesforce中获取Http请求的JSON正文

问题描述:

我正在使用salesforce集成创建iOS应用程序。 iOS应用程序将在http请求的主体中将JSON数据发送给salesforce。我如何在顶点获得身体作为JSON字符串?在Salesforce中获取Http请求的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 
} 

你可以实现一个简单的REST Web服务在salesforce.com这是很容易的,带来内置的JSON或XML消息的支持。查看APEX文档的以下页面: http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_rest_methods.htm
此集成的复杂部分将是身份验证。无论您使用REST还是SOAP,都需要有效的会话ID进行身份验证。这可以通过调用标准Webservice API的登录操作或使用更适合于REST方法的OAuth来完成,但可能相当复杂。 尤其是对于iOS开发的另一种整合方案是西蒙菲尔的zksForce框架,它提供了与标准salesforce.com web服务API交互的固体方式: zkSforce at GitHub

+0

我有认证令牌都算出来了......我只想将请求正文中的JSON放入一个字符串中。有没有我可以打电话的功能会做到这一点?如: String jsonString = getBody(); ??? – thebiglebowski11 2012-07-06 14:26:37

+0

您需要一个端点来发送您的请求,因此您必须使用APEX的REST或SOAP功能。所以,你可以使用这样的:'@RestResource(urlMapping中= '/ myendpoint/*') 全球与共享类MyEndpointClass { @HttpPost 全局静态布尔processInput(字符串输入){// 过程输入字符串这里 ' }' – h9nry 2012-07-06 20:34:38