ваша строка CURLOPT_POSTFIELDS выглядит как неполная, обрезанная, но в любом случае это дерьмовый способ выполнить запрос multipart / form-data в PHP, гораздо проще просто позволить php / libcurl создать запрос multipart / form-dataдля тебя.который в вашем случае будет выглядеть примерно так:
curl_setopt ( $ch, CURLOPT_POSTFIELDS, array (
"active_registration_id" => 123,
"language_id" => 79,
"archived" => "{{archived}}",
"enabled" => "{{enabled}}",
"password" => "SamplePassword",
"password_confirmation" => "SamplePassword",
"registration_attributes" => array (
"first_name" => "Justin",
"last_name" => "Trudeau",
"email" => "email@sample.com",
"telephone_1" => "555-555-5555",
"date_of_birth" => "1943-10-10",
"gender" => "male",
"referral_code" => "Ample Clinic 123",
"Status" => "Registration Pending"
),
"For Additional Permitted Parameters:" => "See Registration Parameters",
// ...
) );
и избавится от обоих заголовков по разным причинам: "Content-Type: application/x-www-form-urlencoded"
- этот заголовок лживый, это не формат x-www-form-urlencoded, этополностью несовместимый формат "multipart / form-data"."content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"
- curl установит этот заголовок автоматически, и с другой (сгенерированной случайным образом) границей, если вы установите границу вручную, сервер не сможет ее проанализировать.(поскольку граница, указанная в заголовках, будет неправильной)