首页 > 试题广场 >

下面说法正确的是

[单选题]
下面说法正确的是
  • setRequestMethod方法的参数为int类型的响应码
  • 通过getResponseCode方法获得连接网络返回的响应码
  • setDoInput方法设置的boolean类型变量,初始值是false,因此需要我们设置其为true
  • doOutput属性的初始值是true,因此根据需要来选择是否更改
1.setRequestMethod是请求的方法,放get或者post的
2.正确,获取返回码,方法名已经很清楚了
3和4不清楚,查了一下 这里说的很好https://blog.csdn.net/u010665691/article/details/45558119
发表于 2019-12-09 12:08:12 回复(0)
  • A. setRequestMethod方法 属于HttpURLConnection类,方法完整定义:
    public void setRequestMethod(String method) throws ProtocolException {...}
    明显参数是String类型,所以A错。
    补充:HttpURLConnection是java中的一个抽象类,Android app开发中可以用HttpURLConnection和服务器端通信,具体可以参考https://blog.csdn.net/zhangjin1120/article/details/52735201
    我们经常需要设定网络请求的类型是GET还是POST,所以常用:
    URL url = new URL(yourURL);
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    urlConnection.setRequestMethod("GET");// 设置请求的方式
    //urlConnection.setRequestMethod("POST");// 设置为POST
    我们再看看HttpURLConnection的源码是如何定义setRequestMethod()的参数的:
          /**
         * The HTTP method (GET,POST,PUT,etc.).
         */
        protected String method = "GET";
    可以看到我们只需要传入String类型的"GET"、“POST”等等。所以setRequestMethod()方法的参数一定是String类型的。
  • B getResponseCode方法也是属于HttpURLConnection类,方法完整定义:
     /* 
      * @return the HTTP Status-Code, or -1
      */
      public int getResponseCode() throws IOException {...}
    根据注释,知道B正确。
  • C setDoInput方法也属于URLConnection类,
    URLConnection类是HttpURLConnection类的父类。
    查看URLConnection类源码如下:
    *
       * @see     java.net.URLConnection#getDoInput()
       * @see     java.net.URLConnection#setDoInput(boolean)
       */
      protected boolean doInput = true;
      ...
      ...
      public void setDoInput(boolean doinput) {
          if (connected)
              throw new IllegalStateException("Already connected");
          doInput = doinput;
      }
    可知,doInput的默认值为true,所以C错。
  • D setDoOutput方法也属于URLConnection类,
    URLConnection类是HttpURLConnection类的父类。
    查看URLConnection类源码如下:
    /*
     * @see     java.net.URLConnection#getDoOutput()
     * @see     java.net.URLConnection#setDoOutput(boolean)
     */
    protected boolean doOutput = false;
    ...
    ...
    public void setDoOutput(boolean dooutput) {
        if (connected)
            throw new IllegalStateException("Already connected");
        doOutput = dooutput;
    }

可知,doOutput 默认值是false,所以D错。

编辑于 2020-11-08 23:20:54 回复(2)

10道题就对了3道是什么心情。。。。

发表于 2019-11-08 16:15:12 回复(3)
CD get请求的话默认就行了,post请求需要setDoOutput(true),这个默认是false的。
发表于 2020-11-24 09:35:36 回复(0)