我需要对以下 URL 执行请求:
http://[用户名]:[密码]@[服务器 IP]:[端口]/some/path/to/some/file
但最终生成的 URL 被视为无效,因为它包含两次“:”字符。 有什么解决办法吗?
这是我尝试过的:
$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"
最佳答案
将 ':' 的编码值改为 %3A
我建议您使用在线广泛使用的 URL 编码器工具,在此处检查其中一个...
http://meyerweb.com/eric/tools/dencoder/
这里还有w3school提供的完整的char编码列表...
关于php - 带有 Web 身份验证和端口的 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13120396/