Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP curl登录太长_Php_Authentication_Curl_Digest - Fatal编程技术网

PHP curl登录太长

PHP curl登录太长,php,authentication,curl,digest,Php,Authentication,Curl,Digest,我有一个可以在浏览器中使用的web服务,但不能在PHP脚本中使用CURL调用 这里是我使用的登录名/密码发送示例代码 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST); curl_setopt($ch, CURLOPT_USERPWD,'BmN+GP4VBev5tVz

我有一个可以在浏览器中使用的web服务,但不能在PHP脚本中使用CURL调用

这里是我使用的登录名/密码发送示例代码

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_USERPWD,'BmN+GP4VBev5tVzJU/altsyXXw0PXYcunbT8F8EatlbpctBXZp1OO2ySQyekZb5729qQPkdwdDBoUxMjBu1mlvv5Bt90GGRwyvEHGTMlT9cjs5YRpBJxEhksVyoL1Z4pwLAq3gKSj+PGW0HQhOSr8h7lyMG+9HJjL7pKeeds+Byn+TYnaium1MsGFg4TiE6Ztvr6rVpdaJSI3einSABuC1PCnNPkbHEdtwdrd8DU2jKcQ1fzderhmuJQE6pls6wwQjWF6sCTUTo/upUHUe0p5GY+7pKCHBXgNEhRhx3JgweiJN8ErxoiPCCIOdOScAEfcgZOgqQDGsJqnhuQ/5fKqg==:passwordOfTheUser');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
var_export(curl_getinfo($ch))."\n";
如果我看一下getInfo的内容,我得到了这个

[...]
'request_header' => 'GET /uriNotRelevant.queryString=Data HTTP/1.1
Authorization: Digest     username="BmN+GP4VBev5tVzJU/altsyXXw0PXYcunbT8F8EatlbpctBXZp1OO2ySQyekZb5729qQPkdwdDBoUxMjBu1mlvv5Bt90GGRwyvEHGTMlT9cjs5YRpBJxEhksVyoL1Z4pwLAq3gKSj+PGW0HQhOSr8h7lyMG+9HJjL7pKeeds+Byn+TYnaium1MsGFg4TiE6Ztvr6rVpdaJSI3einSABuC1PCnNPkbHEdtwdrd8DU2jKcQ1fzderhmuJQE6pls6w", realm="SVCCompagnonRelay Digest Authentication", nonce="MTM1NDQ4Nzc2NjkzNjoxYTRhMThkOTk5Yjc4OWY1Y2Q0MWQ3NzY3NzRlYzFlYw==", uri="/uriNotRelevant.queryString=Data", cnonce="MTczNDU1", nc=00000001, qop="auth", response="c319b14a40bf54955b764117d7f4bbc3"
Host: example.org
Accept: */*
Cookie: MBLPRDSession=C7B717115F119BAAB5C5BC308DD7FB18; WASMBLPRD2AND=mbltrap21and

',
)
您可以看到,包含login:password的标题被截断。 我试图手动设置标题,但复制摘要协议比这个想法更难

我不知道现在该怎么办:-(

你知道如何扩大摘要登录的大小吗

编辑²:
修复了该问题,请参阅我的解决方案。我搜索了CURL的源代码,发现:

也许这就是我的头被256个字符截断的原因。我将尝试用更高的值重新编译curl,看看它是否解决了这个问题

我将urldata.c的数据改为4096和4095(是的,它很大),效果非常好。我用PHP解决了我的问题。 我制造了另一个问题,我不能在命令行中使用curl

#curl http://google.fr
curl: (2) Failed initialization
但是,即使不做任何更改,我也会遇到这个问题。这与我的修改无关。可能版本对我的系统来说太更新了(最后一个)。这是另一个问题。无论如何,我不会在我的Web服务器上的命令行中使用它

//urldata.c
#define MAX_CURL_USER_LENGTH 256
#define MAX_CURL_PASSWORD_LENGTH 256
#define MAX_CURL_USER_LENGTH_TXT "255"
#define MAX_CURL_PASSWORD_LENGTH_TXT "255"
#curl http://google.fr
curl: (2) Failed initialization