2014年1月21日星期二

PHP curl_init 设置HTTP服务器认证

    使用 PHP 的 cURL 库去抓取网页时,有时会遇到 HTTP 服务器需要进行身份验证的情况,这时候该怎么设置呢?

需要进行身份验证

<?php

    $url = "http://192.168.0.100:8080/JM-PLATFORM/sms/MobsetSendSMS/sysId/oa/mobileNum/{$mobile_phone}/message/{$message}";

    $tmp = sys_get_temp_dir();
    $cookieDump = tempnam($tmp, 'cookies');
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //设置存放 Cookie 的文件
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieDump);
    //设置 Http 身份验证的方法,这里有多个选项可以选择,可参考 php 手册
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    //设置 用户名和密码
    curl_setopt($ch, CURLOPT_USERPWD,'User:Password');
    $output = curl_exec($ch);
    curl_close($ch);
    echo $output;

?>