Curl返回特定端口上的空白页

Curl返回特定端口上的空白页,curl,port,Curl,Port,我正在尝试将curl设置为输出。它是在该地址输出的基本文本字符串 我正在执行此代码,但它不起作用,但如果我取出27017并加载主域,则工作正常: $cookie_file_path = "cookiejar.txt"; $fp = fopen("$cookie_file_path","w"); fclose($fp); $LOGINURL = "http://www.myserver.org:27017"; $agent = "Mozilla/4.0 (compatible; MSIE 6.0

我正在尝试将curl设置为输出。它是在该地址输出的基本文本字符串

我正在执行此代码,但它不起作用,但如果我取出27017并加载主域,则工作正常:

$cookie_file_path = "cookiejar.txt"; 
$fp = fopen("$cookie_file_path","w");
fclose($fp);
$LOGINURL = "http://www.myserver.org:27017";
$agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$LOGINURL);
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
    $result = curl_exec ($ch);
echo $result;
知道它为什么不起作用吗?任何帮助都将不胜感激。不确定是否相关,但web服务器与27017端口上输出的应用程序运行在同一台机器上

更新:

$cookie_file_path = "cookiejar.txt"; 
$username = "myusername";
$password = "mypassword";
$LOGINURL = "http://www.myserver.org";
$agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$LOGINURL);
    curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
    curl_setopt($ch, CURLOPT_PORT , "27017");
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
    $result = curl_exec ($ch);

echo $result;
更新2:

决心

事实证明,这个特定实例需要摘要身份验证

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
解决了这个问题


感谢Barmar让我意识到它确实需要一个用户/通行证。

当我点击链接时,我被要求输入用户名和密码。您需要使用
CURLOPT_USERPWD
选项来提供:

$username = 'XXX';
$password = 'YYY';

curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
以下是当我这样做时得到的结果:

$ curl -s -D/dev/stdout 'http://www.nationalgaming.org:27017'
HTTP/1.1 401 Unauthorized
Content-Length: 0
WWW-Authenticate: Digest qop="auth", realm="www.nationalgaming.org", nonce="1354591712"

这表明该页面需要登录。

如果您请求index.html,它将请求密码(将您带到管理服务器的其他页面)。但是,如果您直接访问它而不指定index.html部分(仅指根域),则不应要求输入密码。至少在使用chrome或ie9时它从未问过我。或者chrome/ie9会自动指定某种默认的来宾用户名和密码。我只是点击了你在问题中的链接,它没有说
index.html
。浏览器可以选择性地记住登录信息,因此您可能已将其保存在浏览器中。不是这样。我厌倦了不同的机器,关闭了浏览器,清除了所有cookie/历史记录/等等,重启了机器,等等。在访问/index.html时,它只要求user/pass。请看我从
curl
中的示例输出,它支持我所说的。这让我发疯。我更新了原来的帖子-见新代码。但还是空白页。