2011-02-23 47 views
29

我有一個構建URL的Silverlight應用程序。該URL是對基於REST的服務的調用。此服務需要一個表示位置的單個參數。該位置的形式是「城市,州」。要構建這個URL,我打電話以下代碼:URL的編碼參數

string url = "http://www.domain.com/myService.svc/"; 
url += HttpUtility.UrlEncode(locationTextBox.Text); 

如果用戶輸入「伊利諾斯州芝加哥」到locationTextBox,結果是這樣的:

http://www.domain.com/myService.svc/chicago%2c+il 

在現實中,雖然,我有點期待網址看起來像;

http://www.domain.com/myService.svc/chicago,%20il 

當通過瀏覽器URL測試我的服務時,我期待的那個工作。但是,正在生成的網址無效。我究竟做錯了什麼?

回答

6

嘗試使用UrlPathEncode()方法。 查看評論在: http://msdn.microsoft.com/en-us/library/h10z5byc.aspx

報價:

您可以用 以UrlEncode()方法或 UrlPathEncode()方法使用編碼的URL。但是, 方法返回不同的結果。 UrlEncode()方法將 字符的每個空格轉換爲加號(+)。 UrlPathEncode()方法將每個 空格字符轉換爲字符串「%20」, ,它代表 十六進制表示法中的空格。當您編碼 URL的路徑部分時,使用 UrlPathEncode()方法,以便 保證一致的解碼URL, ,而不管瀏覽器執行哪個平臺或 解碼。