C# http請求錯誤ProtocolViolationException

C# Exception..

    今天遇到一個錯誤,提示信息爲:

Content-Length or Chunked Encoding cannot be set for an operation that does not write data


    這個錯誤是我在創建一個http請求時遇到的,當調用HttpWebRequest.GetResponse 方法時就報ProtocolViolationException這個錯,雖然上面的提示信息給力我初步的提示,但具體錯在哪裏?I don't know...............................


    習慣性的百度了一下,關鍵字爲“ProtocolViolationException”,得到的信息都一個樣,總的來說就是:

本來應該用POST方式發送數據的請求卻用了GET,或者GET方式不該有的設置而你卻設置了。


ps:我用的就是POST啊,怎麼會..........


    百度上的結果少的可憐,甚至用錯誤提示“Content-Length or Chunked Encoding cannot be set for an operation that does not write data”去搜索,得不到任何匹配的信息尷尬,沒辦法,谷哥,幫一下忙吧。

谷哥一出馬,馬上就有結果了,關鍵字“Content-Length or Chunked Encoding cannot be set for an operation that does not write data”。

點擊搜索結果的第一條,鏈接爲:http://forums.asp.net/t/1698399.aspx/1,很好,問題立馬解決,不過鏈接裏是英文哦,看不懂?好吧我用中文說一遍,雖然我也是靠着強大的字典一個一個單詞地對照翻譯纔看懂的,英語爛,沒辦法,英語好的人去支持一下原文吧,英語跟我同樣爛的看下面:

原文大意爲:你向一個url發送請求資源A時,服務器返回了一個重定向代碼303,將你的請求重定向到了B,這時候請求的參數(POST過去的數據)在重定向中丟失了,然後就出錯了,你需要用另一個代替的資源或者確定頁面爲什麼要重定向


當然,我不知道這樣的解釋合不合理,但我遇到的就是這個問題,我請求一個用POST請求一個url(夾帶這數據data),但服務器將我的請求重定向到了另一個url,然後請求另一個頁面,但我post過去的數據data不能一起重定向過去,然後就悲劇了......

本來沒有寫文章的習慣,無奈接受不了百度連一個有用的結果都沒有,於是有了這個文章,希望能爲百度的數據庫增添一下內容,爲後人鋪路...

百度, f u c k    y o u r s e l f

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章