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 關注
- 170 瀏覽
添加回答
舉報