冒号 :在 REST WCF 请求中



所以我有一个指向我的 wcf 服务的 URL,如下所示:

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 错误 400 - 错误请求。

有什么想法吗?

对 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

最新更新