在使用基本的HTTP身份验证时,用户名可以通过URL传递,例如:
http://david@foo.com/path/
但是现在假设用户名是电子邮件地址,例如david@company.com。 这样做显然会产生歧义:
http://david@company.com@foo.com/path/
有没有一种方法可以转义用户名中的@字符?我尝试了标准的URL编码:
http://david%40company.com@foo.com/path/
但那并没有起作用。
在使用基本的HTTP身份验证时,用户名可以通过URL传递,例如:
http://david@foo.com/path/
但是现在假设用户名是电子邮件地址,例如david@company.com。 这样做显然会产生歧义:
http://david@company.com@foo.com/path/
有没有一种方法可以转义用户名中的@字符?我尝试了标准的URL编码:
http://david%40company.com@foo.com/path/
但那并没有起作用。
userinfo = *( unreserved / pct-encoded / sub-delims / ":" )
所以看起来像是
http://david%40company.com@foo.com/path/
没错。你是在哪里尝试读取它?也许你需要手动解码这个值?
http(s)://user:pass@host
。因此,在您的情况下,应为http(s)://david%40company.com:Y0ur%24up3r%243cur3P%40%24%24w0rd@foo.com
。请注意,"@"符号需要进行URL编码。 - FatalMerlin