php发送json字符串

使用curl的post方式发送json字符串

代码块

function post_json_data($url, $arr) {
    $data_string=json_encode($arr);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json; charset=utf-8',
            'Content-Length: ' . strlen($data_string))
    );
    ob_start();
    curl_exec($ch);
    $return_content = ob_get_contents();
    ob_end_clean();
    $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    return array('code'=>$return_code, 'result'=>$return_content);
}

注意

·· PHP默认只识别application/x-www.form-urlencoded标准的数据类型
·· 这里设置了请求头为json格式就不能使用$_POST的方式来接收
·· 使用file_get_contents(“php://input”)的方式来接收数据。

你可能感兴趣的:(PHP)