2016-04-28 37 views
0

我運行在AC#應用程序一個HttpListener,接收到HTTP GET請求,與下面定義的HttpListenerRequest編碼忽略contentType字符集定義

Content-Type: text/plain;charset=utf-8 

根據用於ContentEncoding property MSDN的文件,下文中描述:

編碼對象可用於將字節序列轉換爲字符集(代碼頁),並將字符轉換爲字節序列。 此屬性使用Content-Type標頭中的字符集值來確定編碼。如果該信息不可用,則此屬性返回Encoding.Default。

當我查看請求的Content-Encoding屬性時,它仍然返回默認的ISO而不是定義的UTF-8編碼。

我是否錯過了一些東西,或者是這個屬性只是從MS網站上正常地竊聽?

回答

0

看來如果你沒有在你的請求中設置Content-Lenght,那麼HttpListener將繞過Content-Type的字符集,導致我在問題中描述的問題。解決的辦法是將Content-Lenght設置爲至少1(在PostMan中,這個頭部是受限制的,所以在那裏的解決方法是在主體中添加一個空白區域。我還不知道解決請求的方法)。