mongo鏈接的url中包含特殊字符的處理:@和:

問題提出:
熟悉mongodb的小夥伴們都知道,mongodb提供使用uri來訪問mongodb中的某個數據庫。mongodb uri中包含了用戶名username、密碼password、主機ip、端口號port以及數據庫名dbname信息,且這些信息之間通常使用:或者@或者/來分隔。mongodb uri的一般格式爲:

 String uri ="mongodb://username:[email protected]:27017/dbname";

顯而易見,如果username或者password中包含@和:這兩個特殊字符的話(比如username爲ab@c,password爲al:ex),程序將無法分辨真正的username和password。從而導致程序無法正常訪問mongodb。

解決方案:
對username和password中包含的@和:進行url編碼,@的url編碼爲%40,:的編碼爲%3a。(具體可以使用urlencode在線工具驗證,網址:http://tool.chinaz.com/Tools/urlencode.aspx )

因此對於“username爲ab@c,password爲al:ex”這種情況,uri應該改爲如下:

 String uri ="mongodb://ab%40c:al%[email protected]:27017/dbname";

注意:此處的數據庫名不可缺少,否則訪問可能報錯,可以參考:https://www.jianshu.com/p/7657a275c422。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章