• home > java > base >

    setdoinput和setdooutput是什么鬼?他们的默认值分别是什么?

    Author:zhoulujun@live.cn Date:

    android 6 0默认奇妙地移除了HttpClient,所以AndroidHttpClient,也跟着移除了+——AndroidHttpClient 是HttpClient的封装^官方建议……使

    android 6.0默认奇妙地移除了 

    HttpClient,所以AndroidHttpClient,也跟着移除了+——

    AndroidHttpClient 是HttpClient的封装^

    官方建议……使用URLConnection……(疯狂原始人么?……

    然后,看代码!!


    setdoinput和setdooutput ……


    blob.png


    这两个的默认值是什么啊!(其实只需要设置一个就可以了……

    httpUrlConnection.setDoOutput(true);以后就可以使用conn.getOutputStream().write()  

    httpUrlConnection.setDoInput(true);以后就可以使用conn.getInputStream().read();  

    get请求用不到conn.getOutputStream(),因为参数直接追加在地址后面,因此默认是false。  

    post请求(比如:文件上传)需要往服务区传输大量的数据,这些数据是放在http的body里面的,因此需要在建立连接以后,往服务端写数据。  

      

    因为总是使用conn.getInputStream()获取服务端的响应,因此默认值是true。  


    public void setDoInput(boolean doinput)将此 URLConnection 的 doInput 字段的值设置为指定的值。    

    URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。  (因为总是使用conn.getInputStream()获取服务端的响应,因此默认值是true。  

    public void setDoOutput(boolean dooutput)将此 URLConnection 的 doOutput 字段的值设置为指定的值。    

    URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输出,则将 DoOutput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 false。   (get请求用不到conn.getOutputStream(),因为参数直接追加在地址后面,因此默认是false。   

      

    api上说的很清楚了,楼主不确定是可以先查下java api文档  


    package com.pagoda.tool;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.URL;
    import java.net.URLConnection;
    
    /**
     * Created by lujun on 3/1/2016.
     */
    public class HttpSend {
    
        public String sendPost(String url,String param){
            PrintWriter printWriter = null;
            BufferedReader bufferedReader = null;
            String result="";
            try {
                URL url2=new URL(url);
                URLConnection connection=url2.openConnection();
                connection.setDoInput(true);
                connection.setDoOutput(true);
                printWriter=new PrintWriter(connection.getOutputStream());
                printWriter.print(param);
                printWriter.flush();
                bufferedReader= new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String line;
    
                while ((line=bufferedReader.readLine())!=null){
                    result+=line;
                }
                bufferedReader.close();
    
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try{
                    if(printWriter!=null){
                        printWriter.close();
                    }
                    if(bufferedReader!=null){
                        bufferedReader.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
            return  result;
    
        }
    
    }



    转载本站文章《setdoinput和setdooutput是什么鬼?他们的默认值分别是什么?》,
    请注明出处:https://www.zhoulujun.cn/html/java/javaBase/7817.html