带有web身份验证和端口的HTTP请求

时间:2012-10-29 11:04:53

标签: php http curl basic-authentication

我需要对以下网址执行请求:

的http:// [USERNAME]:[PASSWORD] @ [SERVER_IP]:[PORT] /一些/路径/到/一些/文件

但最终生成的URL被视为INVALID,因为它包含两次“:”字符。 有没有解决方案?

这就是我的尝试:

$process = curl_init('http://[SERVER_IP]:[PORT]/OpenKM/webdav/okm:personal/somefile.mp4');
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, "[USERNAME]:[PASSWORD]");
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($process);  // $return is FALSE
var_dump(curl_error($process));die();  // Here we see string(23) "Empty reply from server"

1 个答案:

答案 0 :(得分:6)

将编码值改为':',%3A

我建议您在线广泛使用URL编码器工具,在这里查看其中一个......

http://meyerweb.com/eric/tools/dencoder/

此处还有w3school提供的完整字符编码列表...

http://www.w3schools.com/tags/ref_urlencode.asp