我在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()
的实现,所以看起来这个方法绝对没有任何效果。
答案 0 :(得分:0)
URLConnection是一个抽象基类,不实现任何特定协议。
您正在寻找HttpURLConnection。 URLConnection
类的此实现覆盖并在功能上实现用于HTTP协议的setRequestProperty()
方法。
更新
仔细观察后,我发现HttpURLConnection
也是一个抽象类。在Android Studio中可以通过右键单击类声明并单击Go To - >来查找任何实现。实施(多个)。
但我怀疑实际的具体实现是随我们使用的SDK一起提供的。我只发现了Java特定的实现(rt.jar)。
这可能意味着SDK中不包含setRequestProperty()
的实际实现。