我有以下 curl 命令并想与 php curl 一起使用。在 CLI 中使用 curl 的命令可以正常工作。
命令从 REST Web 服务 API 收集数据。该服务将 URL 编码的查询字符串作为“q”参数,并返回一个简单的 JSON 编码结果列表。
卷曲命令:
curl -XGET 'user:password@192.168.0.199/cdtc-test/service.php/find/ca_objects?q=*' - d '{
"bundles" : {
"access" : { "convertCodesToDisplayText" : true },
"status" : { "convertCodesToDisplayText" : true },
"ca_entities.entity_id" : {"returnAsArray" : true }
}
}'
我让它在 PHP 中工作,直到带有以下代码的 -d 标志:
$curl = curl_init("user:password@192.168.0.199/cdtc-test/service.php/find/ca_objects?q=*");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($curl);
curl_close ($curl);
我的问题是,如何使用 CURLOPT_POSTFIELDS 传递 -d 标志后面的数据?我尝试使用以下代码但没有结果:
curl_setopt ($curl, CURLOPT_POST, true);
url_setopt ($curl, CURLOPT_POSTFIELDS, '{
"bundles" : {
"access" : { "convertCodesToDisplayText" : true },
"status" : { "convertCodesToDisplayText" : true },
"ca_entities.entity_id" : {"returnAsArray" : true }
}
}');
以下是打印 curl_getinfo( $curl ); 的结果
Array ( [url] => user:password@192.168.0.199/cdtc-test/service.php/find/ca_objects?q=* [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => 0 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0 [namelookup_time] => 0 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 [certinfo] => Array ( ) [redirect_url] => )
我浏览了文档并尝试了我能想到的一切,但我真的迷失了。任何帮助将不胜感激。