Tshumore Ответов: 0

Как кодировать часть URL-адреса в WCF rest/uritemplate


У меня есть служба WCF Rest, которая делает вызов удаленному серверу. Служба отправляет некоторые параметры как параметры запроса (динамические), а некоторые-как статические. Статические параметры уже настроены в web.config как appkeysettings :

<appsettings>
&ЛТ;добавить ключ="importfolderpath" значение="C:/Users/preprod/Documents/FlexCBS/Import"&ГТ;
<добавить ключ="securitytoken" значение="45e29ad9-3a41-4203-8a24-43ee6a7d6aaf">



Когда я пытаюсь вызвать запрос в Postman, я получаю "400 плохих запросов". С тех пор я понял, что мне нужно закодировать часть запроса, которая содержит косую черту:

{
"MediaReference": “HRE/MVE/Q/000003276”
}


Оригинальный endpooint-это :

[OperationContract]
      [WebInvoke(Method = "GET", UriTemplate = "/FlexcubeConfirmationWraped?MediaReference={MediaReference}&BankAccountCode={BankAccountCode}&BillRefNumber={BillRefNumber}&MediaTypeCode={MediaTypeCode}&CurrencyCode={CurrencyCode}&Reference={Reference}&Amount={Amount}", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
      string FlexcubeTransactionConfirmationWraped(string MediaReference, string BillRefNumber,string Amount, string BankAccountCode, string CurrencyCode, string Reference, string MediaTypeCode);




Правильно ли я это делаю ? Любая помощь о том, как я могу кодировать определенную часть UriTemplate

Что я уже пробовал:

Я попытался кодировать запрос ниже, но сразу же получил синтаксическую ошибку в этой запятой Кузов


[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/FlexcubeConfirmationWraped?BankAccountCode={BankAccountCode}&BillRefNumber={BillRefNumber}&MediaTypeCode={MediaTypeCode}&CurrencyCode={CurrencyCode}&Reference={Reference}&Amount={Amount}"  + HttpUtility.UrlEncode("MediaReference") +  ,BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
string FlexcubeTransactionConfirmationWraped(string MediaReference, string BillRefNumber,string Amount, string BankAccountCode, string CurrencyCode, string Reference, string MediaTypeCode);

0 Ответов