要从现有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,它可以是httpshttp

以下代码正是您想要的。它仅创建一个生成器。您可能认为您可以直接在方案的网址前面加上前缀(这样主机将是https://www.google.com),避免设置属性,但这是行不通的。

HttpUrl.Builder().scheme("https").host("www.google.com").build()

关于java - HttpUrl newBuilder(String)的用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58276056/

10-10 09:43