在Force.com平台上响应公共Restful Web服务上的XML数据

时间:2012-09-13 17:43:12

标签: xml web-services rest salesforce force.com

我测试了以下代码

@RestResource(urlMapping='/myservice')

global class MyService {
    @HttpGet
    global static void doGet() {
        RestContext.response.addHeader('Content-Type', 'text/plain');
        String name = RestContext.request.params.get('name');

        RestContext.response.responseBody = Blob.valueOf('Hello '+name);
    }
}

默认情况下,返回类型为JSON。如何将响应格式更改为XML。我试过跟随     RestContext.response..addHeader( '内容类型', '文本/ XML');     RestContext.response..responseBody = Blob.valueOf( '' + newcase.Id + '');

但我仍然没有得到XML的响应

1 个答案:

答案 0 :(得分:0)

您必须将content-type设置为请求,而不是设置在响应中。

e.g:

curl -H "Authorization: Bearer sessionId" -H "Content-Type: text/xml" -d @account.txt "https://instance.salesforce.com/services/apexrest/Account/"

此外,您应该定义一个引用您的方法使用的任何Apex命名空间的XML Namespaces

请注意在响应中设置Content-Type,但无法使用XML进行设置。

  

某些参数和返回类型不能与XML一起使用   请求的Content-Type或作为可接受的格式   响应,因此,这些参数或返回类型的方法   不能与XML一起使用。

More详细信息