[英]How do I make this Salesforce cURL request in PHP?
我正在使用PHP向Salesforce的REST API发出cURL请求。
我已经弄清了大部分需要解决的请求,但是我不确定如何将以下Salesforce API页面上的以下curl
命令转换为PHP中的cURL请求:
curl https://yourInstance.salesforce.com/services/data/v20.0/sobjects/Account/customExtIdField__c/11999 -H "Authorization: Bearer token" -H "Content-Type: application/json" -d @newrecord.json -X PATCH
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_upsert.htm
我知道-H
选项用于标题,我将处理以下内容:
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
而且我认为 -X PATCH
部分可以通过以下PHP cURL选项完成:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
但是,如何处理PHP cURL中的-d @newrecord.json
部分?
谢谢。
您应该发布json
$post = json_encode($data);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
您使用-d @newrecord.json
是正在上载(JSON)文件供端点使用。 要在PHP中复制此代码,您需要将带有file
元素的数组传递给CUROPT_POSTFIELDS
,如下所示:
$file = [
"file" => "@newrecord.json";
];
curl_setopt($ch, CURLOPT_POSTFIELDS, $file);
确保提供正确的文件路径。 您可以使用realpath()
来辅助此操作。
另外,您可以发送JSON编码的数据:
$data = [
"site" => "Stack Overflow",
"help" => true,
];
$jsonData = json_encode($data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
不要忘记设置您的Content-Type: application/json
标头!
最后,您对PATCH
请求的猜测是正确的:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.