我在android studio中查看了URLConnection.setRequestProperty()的源代码,但似乎没有设置任何内容:

public void setRequestProperty(String field, String newValue) {
        checkNotConnected();
        if (field == null) {
            throw new NullPointerException("field == null");
        }
    }

这是checkNotConnected():
private void checkNotConnected() {
        if (connected) {
            throw new IllegalStateException("Already connected");
        }
    }

我在这里想念什么? HttpURLConnection“扩展类”没有setRequestProperty()的实现,因此似乎该方法完全不起作用。

最佳答案

URLConnection是不实现任何特定协议的抽象基类。

您正在寻找HttpURLConnectionURLConnection类的此实现重写并在功能上实现与HTTP协议一起使用的setRequestProperty()方法。

更新

经过仔细检查,我发现HttpURLConnection也是一个抽象类。在Android Studio中,可以通过右键单击类声明,然后单击转到->实现来找到任何实现。

但是,我怀疑实际的具体实现是否与我们使用的SDK一起提供。我只找到了Java特定的实现(rt.jar)。

这可能意味着setRequestProperty()的实际实现未包含在SDK中。

09-10 02:22