JAvaにおけるURIの下線の問題

1228 ワード

の原因となる
SpringCloudを学習する過程で、spring.application.name=user_serviceを設定したサービスプロバイダuser-serviceを作成しました.その後、別のサービスでRestTemplateを使用してサービスを呼び出すと、次のような異常が投げ出されます.
java.lang.IllegalStateException: Request URI does not contain a valid hostname: http://USER_SERVICE/user/by_id?id=1

この異常な意味は私のhostnameが無効だということですが、まさかUSER_SERVICEはhostnameとして使えないのですか?
検証#ケンショウ#
実際には、仕様に従ってホスト名がhostnameに含まれないことは確かです.具体的には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 (.). 

大まかな意味は、ホスト名が1つのテキスト文字列、最大24文字、アルファベットA-Z、数字0-9、マイナス記号(-)、英語(.)であることができる.だから私は_-に変更して、問題を解決しました.

次のコードを実行すると、なぜかわかりますか?
        URI uri1 = URI.create("http://www.baidu-plus.com/");
        System.out.println(uri1.getHost());
        // prints www.baidu-plus.com

        URI uri2 = URI.create("http://www.baidu_plus.com/");
        System.out.println(uri2.getHost());
        // prints null

最後の印刷結果は次のとおりです.
www.baidu-plus.com
null