【发布时间】:2018-11-08 17:24:56
【问题描述】:
我有这个 WordPress 代码使用 wp_remote_post() 对 LinkedIn 进行 API 调用。
$args = array(
'headers' => array('Content-Type' => 'text/xml'),
'body' => "<?xml version='1.0' encoding='UTF-8' standalone='yes'?><company><id>{$nCompanyID}</id></company>"
);
$access_token = $datapass->access_token_get();
$params = array('oauth2_access_token' => $access_token);
$resource = "https://api.linkedin.com/v1/people/~/following/companies?" . http_build_query($params);
$response = wp_remote_post( $resource, $args);
$code = $response['response']['code'];
$body = wp_remote_retrieve_body($response);
$RV = ($code == '201');
return $RV;
它有效。现在,我需要将其转换为 php cURL。 我尝试了各种我在网上找到的 php cURL 发布 XML 的示例,但没有运气。 这是最新的尝试。
$access_token = "long_string_of_characters";
$nCompanyID = 2495437;
$xml = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?><company><id>{$nCompanyID}</id></company>";
$url = 'https://api.linkedin.com/v1/people/~/following/companies?oauth2_access_token='.$access_token;
$headers = array(
"Content-type: text/xml",
"Content-length: " . strlen($xml)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('body' => $xml));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);
$data 返回 400 错误和消息说“意外元素:CDATA”。如果我从CURLOPT_POSTFIELDS 中删除数组并仅使用$xml,则$data 将作为空字符串返回。
我们将不胜感激。
【问题讨论】:
-
@miken32 是的,您的回答很有帮助。谢谢!很抱歉长时间延迟将其标记为已接受。