rest — Как мне сделать этот Salesforce cURL запрос в PHP?

Я использую PHP для выполнения запросов cURL к REST API Salesforce.
У меня есть большинство запросов, которые мне нужно выяснить, но я не уверен, как преобразовать следующие curl команда на следующей странице API Salesforce для запроса cURL в PHP:

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');

Тем не менее, как мне справиться с -d @newrecord.json часть в PHP CURL?
Благодарю.

1

Решение

Что вы делаете с -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');
1

Другие решения

Вы должны отправить JSON

$post = json_encode($data);

curl_setopt($ch, CURLOPT_POSTFIELDS,$post);

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector