要从现有URL创建新的HttpUrl.Builder实例,请使用HttpUrl.newBuilder(String):
new HttpUrl().build().newBuilder(savedUrl)
其中saveUrl是包含格式正确的URL的字符串。
由于方案未定义,以上片段在HttpUrl构造函数中崩溃。作为解决方法,我使用现有的HttpUrl实例-不理想。
问题是:
是newBuilder(String)正确的工作工具吗?
应该如何正确使用newBuilder(String)?
最佳答案
首先,您在创建构建器时未设置任何属性(立即调用build()
),然后从给定的URL创建了另一个构建器,这是一个逻辑错误。
我无法编译您的代码,但是此代码可以(可能就是您的意思):
HttpUrl.Builder().build().newBuilder("https://www.google.com")
此代码不起作用。正如您所描述的,抛出“方案错误”。因此,我查找了here what the scheme should be,它可以是
https
或http
。以下代码正是您想要的。它仅创建一个生成器。您可能认为您可以直接在方案的网址前面加上前缀(这样主机将是https://www.google.com),避免设置属性,但这是行不通的。
HttpUrl.Builder().scheme("https").host("www.google.com").build()
关于java - HttpUrl newBuilder(String)的用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58276056/