Я пытаюсь использовать путь
POST /d2l/api/lp/(D2LVERSION: version)/users/
и я сталкиваюсь с ошибкой. Я надеюсь, что в документации есть что-то, чего мне не хватает, потому что, насколько я могу судить, это должно работать.
HTTP/1.1 400 Bad request
Cache-Control: private
Content-Length: 0
Server: Microsoft-IIS/7.5
X-XSS-Protection: 0
X-Powered-By: ASP.NET
Date: Wed, 23 Jan 2013 18:37:07 GMT
Данные, которые я отправляю, выглядят так:
{
"OrgDefinedId":"190006002",
"FirstName":"Jesty",
"MiddleName":"Q",
"LastName":"McTest",
"ExternalEmail":"[email protected]",
"UserName":"190006002",
"RoleId":115,
"IsActive":true,
"SendCreationEmail":true
}
Мой PHP-код на данный момент выглядит так:
$random_hash = "xxBOUNDARYxx";
$request ="--".$random_hash.
"\r\nContent-Type: application/json\r\n\r\n$data\r\n\r\n--".
$random_hash;
$length=strlen($request);
$url = $opContext->createAuthenticatedUri($url,"POST");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("HTTP/1.1", "Content-Type: multipart/form-data; boundary=xxBOUNDARYxx","Content-Length:".$length));
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
return curl_exec($ch);