關於域名用下劃線的一個問題

其實這不算一個博客,因爲這裏只是記錄一個問題。

什麼問題呢:

網絡請求失敗,報錯java.lang.IllegalArgumentException: Invalid input to toASCII: t_art***.hun***.cn

這裏的t_art***.hun***.cn 是請求的域名。很明顯,域名有下劃線。

這樣的用法是不規範的,爲什麼不說是錯誤的呢,兩個原因:

1、因爲他是可用的,並且絕大多數情況下是沒有問題的。但是,我們他會在一些情況下會有問題。

例如:

開發機器:nexus 6
系統:Android 7.0
開放環境: Android studio 2.2.3
網絡請求框架:retrofit:2.1.0
請求協議:https

爲什麼列這麼全,因爲大多數手機上沒問題啊。小米沒問題,華爲沒問題,google 的postman工具測試也沒問題,http請求也沒問題。但是,如果滿足上面的條件,就會請求失敗。

2、其實這裏有個RFC 952規範 - 美國國防部互聯網主機表規範中的相關條文:

A "name" (Net, Host, Gateway, or Domain name) is a text string up to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus sign (-), and period (.)

//規範指出域名只能是字母、數字和短線(-)還有點(.)。

處理方法可能有多中,我是讓服務器哥們換了域名,以爲移動端處理,可能因爲不規範的域名,會出現別的意料不到的問題。

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