所以我有一个指向我的 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