我试图使用PHP代码调用post请求,但我收到401 Unauthorized错误。

时间:2013-09-06 21:11:19

标签: php post credentials

我试图使用这个PHP代码发送一个帖子请求但是扔给我401 Unauthorized错误:

$username = 'MyDomain\testuser';
$password = '123456';
$url = 'http://10.20.30.40:8080/TargetPage.aspx';

$data = array(
         'username' => $username,
         'password' => $password, 
         'postdata' => 'InputParameter1=Test1&InputParameter2=Test2'
);

$options = array(    
    'http' => array
            (
                'method'  => 'POST',
                'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
                'content' => http_build_query($data)   
            )           
);

$context  = stream_context_create($options);    
$result = file_get_contents($url, false, $context);

1 个答案:

答案 0 :(得分:0)

你没有做正确的基本身份验证。您必须自己构建身份验证标头:

$options = array(
    'http' => array(
        'header' => 'Authorization: Basic ' . base64_encode("$username:$password")
    )
);

您不能只是将用户名/密码元素推送到数组中并期望它能够正常工作。 PHP不知道你正在构建一个HTTP基本身份验证流......你必须自己提供一切。