什么是URLConnection.setDoOutput()影响?
在URLConnection
有setDoOutput()
。 根据我应该的文件
如果打算使用URL连接输出,请将DoOutput标志设置为true,否则设为false。
现在我正好面对这个问题 – 一旦setDoOutput(true)
被调用,服务器只响应GET
请求,Java运行时将请求转换为POST
。 我想了解如果从代码中删除setDoOutput(true)
会发生什么。
这会影响到什么? 假设我把它设置为false
– 我现在能做什么,现在我不能做什么? 我能否执行GET
请求? 什么是这种方法的“输出”?
如果要发送( 输出 )请求正文,则需要将其设置为true,例如,使用POST或PUT请求。 通过GET,你通常不会发送一个身体,所以你不需要它。
发送请求主体本身是通过连接的输出stream完成的:
conn.getOutputStream().write(someBytes);
setDoOutput(true)
用于POST
和PUT
请求。 如果它是false
那么它是使用GET
请求。
添加评论,如果你有一个持久的连接,并发送GET和POST,这就是我所做的:
if (doGet) { // some boolean con.setDoOutput(false); // reset any previous setting, if con is long lasting con.setRequestMethod("GET"); } else { con.setDoOutput(true); // reset any previous setting, if con is long lasting con.setRequestMethod("POST"); }
为避免连接过长,请每次closures。
if (doClose) // some boolean con.setRequestProperty("Connection", "close"); con.connect(); // force connect request
public void setDoOutput( boolean dooutput )
它将一个值作为参数,并将此URLConnection的doOutput
字段的此值设置为指定的值。
URL连接可用于input和/或输出。 如果打算使用URL连接输出,请将DoOutput标志设置为true,否则设为false。 默认值是false。