我正在尝试使用 Apex 设置 POST 内容。下面的示例使用 GET 设置变量
PageReference newPage = Page.SOMEPAGE;
SOMEPAGE.getParameters().put('id', someID);
SOMEPAGE.getParameters().put('text', content);
我有什么方法可以将 HTTP 类型设置为 POST 吗?
我正在尝试使用 Apex 设置 POST 内容。下面的示例使用 GET 设置变量
PageReference newPage = Page.SOMEPAGE;
SOMEPAGE.getParameters().put('id', someID);
SOMEPAGE.getParameters().put('text', content);
我有什么方法可以将 HTTP 类型设置为 POST 吗?
是的,但您需要使用 HttpRequest 类。
String endpoint = 'http://www.example.com/service';
String body = 'fname=firstname&lname=lastname&age=34';
HttpRequest req = new HttpRequest();
req.setEndpoint(endpoint);
req.setMethod('POST');
req.setbody(body);
Http http = new Http();
HTTPResponse response = http.send(req);
有关其他信息,请参阅 Salesforce 文档。
以下 apex 类示例将允许您在查询字符串中为发布请求设置参数 -
@RestResource(urlmapping = '/sendComment/*')
global without sharing class postComment {
@HttpPost
global static void postComment(){
//create parameters
string commentTitle = RestContext.request.params.get('commentTitle');
string textBody = RestContext.request.params.get('textBody');
//equate the parameters with the respective fields of the new record
Comment__c thisComment = new Comment__c(
Title__c = commentTitle,
TextBody__c = textBody,
);
insert thisComment;
RestContext.response.responseBody = blob.valueOf('[{"Comment Id":
'+JSON.serialize(thisComment.Id)+', "Message" : "Comment submitted
successfully"}]');
}
}
上述 API 类的 URL 如下所示 -
/services/apexrest/sendComment?commentTitle=示例标题&textBody=这是一条评论