1

応答は POST データのない通常の HTTP 要求と同じであるため、POST データはプロキシを介して渡されないと思います。システム ログに が表示されますError: username/password is empty

cUrl POST をプロキシと一緒に使用するとバグがありますか?

$proxyServer = "xxx";
$proxyPort = "8080";
$proxyUsername = "DOMAIN\XXX";
$proxyPassword = "YYY";

$postInformation = array(
    "signin" => "yes",
    "username" => "xxx",
    "password" => "xxx",
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $loginURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_NTLM);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXY, "$proxyServer:$proxyPort");
curl_setopt($ch, CURLOPT_PROXYUSERPWD, "$proxyUsername:$proxyPassword");

// Disable the SSL Verfication
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

// HTTP POST
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postInformation));

// Enable Cookies
curl_setopt($ch, CURLOPT_COOKIE, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

$out = curl_exec($ch);

if (curl_error($ch)) {
    echo "ERROR: " . curl_error($ch) . "\n";
}
if ($out) {
    echo $out . "\n";
} else {
    echo "ERROR: No reponse!\n";
}

curl_close($ch);
4

0 に答える 0