使用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/
但那没有做到。
答案 0 :(得分:65)
根据RFC 3986第3.2.1节,它需要是百分比编码:
userinfo = *( unreserved / pct-encoded / sub-delims / ":" )
所以它看起来像
http://david%40company.com@foo.com/path/
是对的。你在哪里读它?也许您需要手动解码值?