2012-06-01 47 views
0

所以我有一個網址,我的WCF服務,它看起來像這樣:冒號:在REST WCF請求

http://dev.verse-master.com/api/VerseMasterService.svc/Search/bi/isaiah 34:16/0/60

我的承包經營合同是這樣的:

[OperationContract] 
[WebGet(UriTemplate = "/Search/{translation}/{searchTerm}/{skip}/{take}", ResponseFormat = WebMessageFormat.Json)] 
VerseMaster.BusinessLayer.DataObjects.ServerObjects.GetVersesSearchServerObject GetVersesBySearch(string translation, string searchTerm, string skip, string take); 

我曾嘗試從在線閱讀將此行添加到web.config中:

<httpRuntime requestPathInvalidCharacters="" requestValidationMode="4.0"/> 

但我仍然得到這個錯誤:

HTTP Error 400 - Bad Request.

任何想法?

回答

0

對url進行編碼,它應該沒問題,只是在返回時處理它。那將用反斜槓很好的幫助,這將導致等量的問題爲:

調用服務:

String encodedSearchTerm = Server.UrlEncode(searchTerm); 
String UrlToCall = String.Format("{0}{1}{2}","http://dev.verse-master.com/api/VerseMasterService.svc/Search/bi/",encodedSearchTerm,"/0/60"); 

...等...

然後在您的操作:

[WebGet(UriTemplate = "/Search/{translation}/{searchTerm}/{skip}/{take}", ResponseFormat = WebMessageFormat.Json)] 
VerseMaster.BusinessLayer.DataObjects.ServerObjects.GetVersesSearchServerObject GetVersesBySearch(string translation, string searchTerm, string skip, string take){ 
...etc... 
String DecodedSearchTerm= Server.UrlDecode(searchTerm); 
...etc... 
} 

記住需要導入System.Web

+0

當然,我可以這樣做,但我怎樣才能運行wcf服務和允許冒號 – nbarger27