Java HttpURLConnection中的setDoInput和setDoOutput
HttpURLConnection.setDoInput
或HttpURLConnection.setDoOutput
的function或用途是什么?
从URLConnection
的文档:
如果您打算使用URL连接进行输入,请将DoInput标志设置为true,否则设置为false。 默认值为true。
如果您打算将URL连接用于输出,请将DoOutput标志设置为true,否则设置为false。 默认值为false。
至于实际目的,Oracle代码中的任何内容似乎都没有检查doInput
变量。 但是, doOutput
默认值为false将阻止您调用HTTP POST请求所需的getOutputStream()
。 因此,这是一种提前指示您希望在不实际建立它的情况下写入OutputStream
。
我仍然对“使用url连接输入”文档中的确切含义感到困惑。
这可能意味着您希望从响应中读取信息,或者您希望将信息输入其请求中。 文件说明:
URL连接可用于输入和/或输出。 将doInput标志设置为true表示应用程序打算从URL连接中读取数据。
此字段的默认值为true。
因此,如果要忽略响应中的数据,则可以将doInput设置为false。 如果你想使用getInputStream(),那么你应该保留它或将其设置为true。
URL连接可用于输入和/或输出。 将doOutput标志设置为true表示应用程序打算将数据写入URL连接。
该字段的默认值为false。
因此,如果要将数据附加到请求(调用getOutputStream()),则必须将doOutput设置为true。
这些方法由超类URLConnection
声明。 我认为其目的是在具体实现中实现潜在的优化。 请记住, URLConnection
与协议无关(但显然不是HttpURLConnection
)。
- 在内部存储中创建公用文件夹
- java.nio.channels.ClosedChannelException
- 无法在基本类型char上调用equals(char)
- 使用JDBC连接到MS SQLServer时出现ClassNotFoundException
- 从相对路径获取图像
- AppEngine ClassNotFoundException:com.google.appengine.api.datastore.DatastoreServiceFactory
- 什么是com.sun包内?
- 无法在android中的服务中启动计时器
- 如何将Google App Engine的Java Content-Type设置为UTF-8