2013-11-24 33 views
1

我們有接受POST請求的WebApi服務。 POST請求中的信息具有此Unicode字符 - (http://www.fileformat.info/info/unicode/char/a1/index.htm使用捲曲 - 字符編碼問題向WebApi發送POST請求

當我們使用Fiddler測試服務時,信息在服務器上正確接收。不過,雖然使用curl做的相同信息的POST,性格得到改變這一個從特價塊 - http://www.fileformat.info/info/unicode/char/fffd/index.htm

爲什麼這知不知道正在發生的事情,以及我們如何能得到捲曲請求POST正確編碼的東西,將不勝感激

編輯: 捲曲請求

curl --trace-ascii debug.txt -d "=VALT ¡ OFFER = '111501383'" http://localhost:25980/api/uni 

阿比控制器代碼

// POST api/<controller> 
public string Post([FromBody]string value) 
{ 
// code to process the value 
} 

提琴手請求(使用作曲家選項卡)

POST http://localhost:25980/api/uni HTTP/1.1 
Accept: text/html, application/xhtml+xml, */* 
Accept-Language: en-IN,en;q=0.5 
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0) 
Content-Type: application/x-www-form-urlencoded; charset=US-ASCII 
Accept-Encoding: gzip, deflate 
Connection: Keep-Alive 
Content-Length: 47 
Host: localhost:25980 

"=VALT ¡ OFFER = '111501383'" 
+0

您是否可以添加發送請求的捲髮代碼。另外,'ApiContoller'代碼會很有幫助。 –

+0

更新的問題與代碼 – jbagavathi

+0

這是捲曲在Windows上嗎?命令行上的非ASCII字符可能會非常棘手。這是一個unicode(/ U)控制檯嗎? – bzlm

回答

3

這是一個建議。我會盡力在今天晚些時候複製你的問題,並會更新答案。

Content-Type:application/x-www-form-urlencoded;字符集= US-ASCII

該行指定您的數據是使用US-ACSII編碼方案,其中不包括¡字符編碼。嘗試使用此選項將其設置爲UTF-8

-H "Content-Type: application/x-www-form-urlencoded; charset=utf-8" 
+0

我同意你的建議,但是看起來他們試圖發送的字符實際上是ASCII 0xa1,這可能會導致捲曲。我猜他們實際上是發送UTF-8 0xc2a1。 – bzlm