`
zhoulujun007
  • 浏览: 17340 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

    博客分类:
  • java
阅读更多

[url=http://www.zhoulujun.cn/zhoulujun/html/java/javaBase/7817.html]文章来源:

[/url]
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;

    }

}
转载保持出处![url]http://www.zhoulujun.cn/zhoulujun/html/java/javaBase/7817.html[url]

 

分享到:
评论

相关推荐

    javaURL分析.

    1. GET请求:通过设置`setDoInput(true)`和`setDoOutput(false)`,然后直接调用`connect()`即可发送GET请求。 2. POST请求:需要设置`setDoOutput(true)`,写入请求体,然后调用`connect()`。 五、HTTPS安全通信 1....

    java实现利用HTTP基于servlet上传文件至服务器[参考].pdf

    - 设置`setDoInput(true)`和`setDoOutput(true)`,分别允许读取服务器的响应和向服务器写入数据。 - `setUseCaches(false)`禁用缓存,确保每次请求都是实时的。 - `setRequestMethod("POST")`设置请求方法为POST...

    java URL URLConnection

    例如,我们可以设置HTTP请求方法(GET、POST等),通过`setDoInput()`和`setDoOutput()`控制是否读写数据,或者通过`setConnectTimeout()`和`setReadTimeout()`设定超时值。 在实际应用中,我们可能会遇到更复杂的...

    Java 实例 - 解析 URL源代码+详细指导教程.zip

    `URLConnection`类提供了一系列方法,如`setDoInput(true)`和`setDoOutput(true)`来设置是否允许输入输出,以及`connect()`来建立实际的连接。 6. **URL编码与解码**: 在处理URL时,我们可能需要对特殊字符进行...

    昆明理工大学XML编程技术期末大报告.doc

    接着,设置`setDoInput(true)`和`setDoOutput(true)`允许输入和输出,`connect()`方法建立实际连接。最后,通过`getContentType()`获取内容类型,并能读取数据。 三、DTD(Document Type Definition) DTD是XML文档...

    http请求的java实现

    通过设置`setDoInput(true)`和`setUseCaches(false)`,确保了能够正确地从服务器读取数据并且不会使用缓存。最后,通过`setRequestMethod("GET")`指定请求方式为GET,并通过读取输入流获取服务器响应的数据。 #### ...

    http info, tool, HttpURLConnection

    值得注意的是,HttpURLConnection默认是异步的,但可以通过调用`setDoInput(true)`和`setDoOutput(true)`来启用输入和输出流,以处理POST请求或上传数据。 虽然HttpURLConnection相对简单且轻量级,但在处理复杂的...

    java实现http连接服务器[参考].pdf

    7. 设置允许从服务器读取数据(`setDoInput(true)`)和向服务器写数据(`setDoOutput(true)`)。 8. 如果是POST请求,设置请求体的类型为`application/x-www-form-urlencoded`,这是表单数据的标准类型。 9. 写入...

    Http通信与Socket通信_笔记[文].pdf

    - 对于POST请求,需要设置`setDoOutput(true)`和`setDoInput(true)`,并设置请求方法为"POST"。 - POST时还需设置`Content-Type`,例如`"application/x-www-form-urlencoded"`,以指定数据格式。 2. **HttpClient...

    Http.rar_HTTP_http get

    connection.setDoOutput(true); // 发送请求 connection.connect(); // 读取服务器响应 BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine...

    Httpurlconnection

    除了基本的请求和响应处理,HttpURLConnection还支持设置连接超时和读取超时,这对于防止程序在等待响应时阻塞非常重要: ```java connection.setConnectTimeout(5000); // 设置连接超时为5秒 connection....

    HTTP Post XML方法

    urlCon.setDoOutput(true); urlCon.setDoInput(true); urlCon.setUseCaches(false); // 将 xml 数据发送到位置服务 urlCon.setRequestProperty("Content-Type", "text/xml"); urlCon.setRequestProperty(...

    WebService URLConnection request/response JDK1.3

    在Java编程领域,WebService是一种基于XML的网络服务接口标准,它允许不同的系统通过互联网进行通信和数据交换。在JDK1.3及更高版本中,Java提供了URLConnection类,这是一个核心的类,用于与URL(统一资源定位符)...

    安卓考试题目及答案.docx

    `setPositiveButton`和`setNegativeButton`分别用于添加确定和取消按钮。 11. assets目录作用: assets目录主要用来放置一些文件资源,这些文件会原封不动地打包到APK中,通常用于存放非Android系统资源,如字体...

    Java自带的HttpURLConnection访问接口实现文件上传

    connection.setDoInput(true); connection.setDoOutput(true); connection.setRequestProperty("Connection", "Keep-Alive"); connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=---...

    java写的http下载

    通过设置`setDoInput(true)`和`setDoOutput(true)`,我们可以读取和写入数据,分别对应HTTP的GET和POST方法。 对于HTTP下载,通常我们会使用GET方法,因为它是从服务器获取资源的基本方式。以下是一个简单的HTTP...

    JDK中的URLConnection参数详解

    Java JDK 中的 `URLConnection` 是一个非常重要的网络通信接口,它是`java.net.URL`类的主要功能接口,用于打开和管理到互联网对象的连接。在本文中,我们将深入探讨`URLConnection`的一些关键特性和参数,特别是在...

Global site tag (gtag.js) - Google Analytics