我正在嘗試執行WEB簡單的寧靜服務。我的代碼基於這篇文章: http://www.progware.org/Blog/post/A-simple-REST-service-in-C.aspx 我改變了一點點,所以我的服務可以得到幾個參數。 這裏是我的變化:url中的百分比編碼WebRequest 404錯誤RESTful服務
public string GetClientNameById(string LS, string Owner, string info)
{
.....
return System.IO.File.ReadAllText(XMLFileName, Encoding.GetEncoding(1251));
}
[ServiceContract(Name = "RESTServices")]
public interface IRESTServices
{
[OperationContract]
[WebGet(UriTemplate = Routing.GetEPDRoute, BodyStyle = WebMessageBodyStyle.Bare)]
string GetClientNameById(string Id,string LS,string tmp);
}
public static class Routing
{
public const string GetEPDRoute = "/EPD/{id}+{LS}+{tmp}";
}
它正常工作與英語simbols,但我需要使用西里爾simbols。 如果我在url中使用西里爾文simbols,它會返回404錯誤。 我試過百分比編碼使用,但結果是一樣的 這裏是我的客戶端代碼:
string url = "http://localhost:4385/Service.svc/EPD/995118466+" + System.Uri.EscapeDataString("Аксенова") + "+434";
WebRequest req = WebRequest.Create(url);
using (HttpWebResponse resp = req.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(resp.GetResponseStream());
label1.Text = reader.ReadToEnd();
}
任何想法如何解決這一問題?
更新:我發現數字代碼的解決方案爲剛剛更換非英語simbols,但我想找到更好的解決方案
http://geekswithblogs.net/rakker/archive/2006/04/21/76044.aspx – m4ngl3r