原理说明:
http请求实际上由两部分组成,一个是http头(head),所有关于此次http请求的配置都在http头里面定义,
一个是正文(content),在connect()函数里面,会根据HttpURLConnection对象的配置值生成http头,
因此在调用connect函数之前,就必须把所有的配置准备好。紧接着http头的是http请求正文,正文的内容
通过outputStream写入实际上outputStream不是一个网络流,充其量是个字符串流,往里面写入的东西不会
立即发送到网络,而是在流关闭后,根据输入的内容生成http正文。至此,http请求的东西已经准备就绪。在
getInputStream()函数调用的时候,就会把准备好的http请求正式发送到服务器了,然后返回一个输入流,用于
读取服务器对于此次http请求的返回信息。由于http请求在getInputStream的时候已经发送出去了(包括http头和正文),
因此在getInputStream()函数之后对connection对象进行设置(对http头的信息进行修改)或者写入outputStream(对正文进行修改)
都是没有意义的了,甚至执行这些操作可能会导致异常的发生。