2014-01-19 26 views
1

我需要使用post方法從其他服務器獲取數據。 當我嘗試與提琴手一起,我得到的數據正確,但與C#,我有一個問題, 得到的問題,而不是希伯來字符。Quest關於從請求中獲取數據的評論

這是我的C#代碼:

private static string PostForm(string Host, string Body) 
    { 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Host); 
     request.Method = "POST"; 
     request.ContentType = "text/xml; encoding='windows-1255'"; 

     byte[] bytes = (Encoding.GetEncoding(1255)).GetBytes(Body); 
     //bytes = Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding("windows-1255"), bytes); 

     request.ContentLength = bytes.Length; 

     Stream requestStream = request.GetRequestStream(); 
     requestStream.Write(bytes, 0, bytes.Length); 

     WebResponse response = request.GetResponse(); 
     Stream stream = response.GetResponseStream(); 
     StreamReader reader = new StreamReader(stream); 

     var result = reader.ReadToEnd(); 

     stream.Dispose(); 
     reader.Dispose(); 

     return result; 
    } 

這種方法得到主機的地址,和XML內容的身體參數字符串。

在小提琴手我寫的XML文檔正文,沒有什麼更多,但它的作品完美。

有什麼建議嗎? 10x

+1

您可以嘗試在您的代碼中添加ISO-8859-1,ISO-8859-8,因爲不包括windows-1255中的一些字符。 (http://www.nirdagan.com/hebrew/characters/)。如果它解決了你的問題,我可以發佈這個答案。 –

+0

謝謝,我在SteamReader中添加了Encoding.GetEncoding(1255),並修復了它。 –

+1

不客氣,很高興你找到它! :) –

回答

0

我添加了endocding到streamReader,它修復了它。

StreamReader reader = new StreamReader(stream, Encoding.GetEncoding(1255));