ソース コードを調べましたが、この動作の理由がわかりません。
Use URI builder in Android or create URL with variablesによると、これはまったく問題なく動作するはずです。
に接続したいと言うhttps://www.gravatar.com/eac16c9fc481cb6825f8b3a35f916b5c.json
次に、このコードを使用して、そのアドレスを取得する 3 つの方法を出力します。
String userHash = "eac16c9fc481cb6825f8b3a35f916b5c";
String correctUrl = "https://www.gravatar.com/" + userHash + ".json";
Uri.Builder builder1 = Uri.parse(correctUrl).buildUpon();
Uri.Builder builder2 = new Uri.Builder()
.scheme("https")
.path("www.gravatar.com")
.appendPath(userHash + ".json");
Log.i("Correct URL", correctUrl);
Log.i("Builder 1 URL", builder1.toString());
Log.i("Builder 2 URL", builder2.toString());
最初の 2 つは問題なく出力されますが、3 番目のものは私が使用したいものですが、http:/www
代わりにご覧のとおり正しくありません。http://www
I/Correct URL: https://www.gravatar.com/eac16c9fc481cb6825f8b3a35f916b5c.json
I/Builder 1 URL: https://www.gravatar.com/eac16c9fc481cb6825f8b3a35f916b5c.json
I/Builder 2 URL: https:/www.gravatar.com/eac16c9fc481cb6825f8b3a35f916b5c.json
私は API 23 でコンパイルしていますが、なぜこれが機能しないのか混乱しているだけなので、別の API バージョンを試す気にはなりませんでした。