在LIBCURL for PHP中,什么是基本的curl -d?
这是我的基本CURL:我需要在PHP中为LIBCURL格式化它:
curl -u username:password -H "Content-Type:application/json" -X POST -d '[{"phoneNumber":"12135551100","message":"Hello World!"}]' "https://api.example.com/v2/texts"
我尝试过使用CURLOPT_WRITEFUNCTION
和CURLOPT_WRITEDATA
,但似乎无法满足我的要求。
答案 0 :(得分:2)
所需选项为CURLOPT_POSTFIELDS。规范与libcurl引用相同。
curl_setopt引用中有一些PHP示例。最简单的方法是以下示例:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "postvar1=value1&postvar2=value2");
答案 1 :(得分:0)
我的端点需要数组形式的数据,所以这很有效。
function doPost($url, $user, $password, $params = array()) {
$authentication = 'Authorization: Basic '.base64_encode("$user:$password");
$http = curl_init($url);
curl_setopt($http, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($http, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($http, CURLOPT_RETURNTRANSFER, true);
curl_setopt($http, CURLOPT_URL, $url);
curl_setopt($http, CURLOPT_POST, true);
curl_setopt($http, CURLOPT_POSTFIELDS, $params);
curl_setopt($http, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json', $authentication));
return curl_exec($http);
}
我的数组格式如下:
$params = '[{"phoneNumber":"' . $ToNumber . '","message":"' . $msg . '"}]';