2 回答
TA贡献1797条经验 获得超6个赞
试试这个代码。
$ch = curl_init( );
$data = array("Content" => "<CONTENT of the message>");
$headers = array(
'Content-Type: application/json'
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data);
// Allow cUrl functions 20 seconds to execute
curl_setopt ( $ch, CURLOPT_TIMEOUT, 20 );
// Wait 10 seconds while trying to connect
curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
$output = array();
$output['server_response'] = curl_exec( $ch );
$curl_info = curl_getinfo( $ch );
$output['http_status'] = $curl_info[ 'http_code' ];
$output['error'] = curl_error($ch);
curl_close( $ch );
return $output;
TA贡献1866条经验 获得超5个赞
看起来你在那里做的一切都是正确的(除了第 10+11 行可怕的缩进,让你看起来好像错过了)实际上不是的),你只是缺少错误检查代码来调试它, 尝试:
$stderrh=tmpfile();
curl_setopt_array($ch,[CURLOPT_VERBOSE=>1,CURLOPT_STDERR=>$stderrh]);
$result = curl_exec($ch);
rewind($stderrh); // https://bugs.php.net/bug.php?id=76268
var_dump(stream_get_contents($stderrh),$result);
详细日志应该告诉你问题是什么,它说了什么?
(同样你在<?php开始时错过了,你可能想在最后添加。如果响应是可压缩的(如 JSON 或 HTML 或文本),你还可以添加以使 curl 使用压缩进行传输,var_dump($result);以加快速度,CURLOPT_ENCODING=>''这通常会加快速度)
- 2 回答
- 0 关注
- 140 浏览
添加回答
举报