我在
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是一个抽象基类,不实现任何特定协议.
您正在寻找HttpURLConnection. URLConnection类的这个实现覆盖并在功能上实现了与HTTP协议一起使用的setRequestproperty()方法.
UPDATE
仔细观察后,我发现HttpURLConnection也是一个抽象类.在Android Studio中可以通过右键单击类声明并单击Go To – >来查找任何实现.实施(一个或多个).
但我怀疑实际的具体实现是随我们使用的SDK一起提供的.我只发现了Java特定的实现(rt.jar).
这可能意味着SDK中不包含setRequestproperty()的实际实现.