原理說明:
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(對正文進行修改)
都是沒有意義的了,甚至執行這些操作可能會導致異常的發生。