#ИМЯ?

Я работаю с проектом asp.net web api, и мне нужно передать номер мобильного телефона через сообщение. Но я не могу вернуть знак плюса.

мой маршрут:

config.Routes.MapHttpRoute( 
    name: "SmsRoute",
    routeTemplate: "rest/sms/{country}/{company}/phone/{mobilenumber}",
    defaults: new { controller = "Sms", action = "PostSms" });

контроллер:

public HttpResponseMessage PostSms(string country, string company, string mobilenumber)
{
    return Request.CreateResponse( HttpStatusCode.Created );
}

Когда я запускаю этот метод post на fiddler:

http://index.html/rest/sms/se/company/phone/46700101010/messages/out

Я получаю этот ответ:

enter image description here

Но я хочу, чтобы он смог показать мне знак плюса.

Ответ 1

IIS предотвращает попадание плюсовых знаков в элементы URL-адреса.

Чтобы отключить эту функцию, в web.config:

<system.webServer>
    <security>
        <requestFiltering allowDoubleEscaping="true" />
    </security>
</system.webServer>

Ответ 3

Это общая аномалия, с которой мы сталкиваемся при добавлении параметров в URL. Здесь вы можете иметь намек на то, что ваш OP и что вам может понадобиться при более позднем запуске

У вас может быть множество параметров, как для +, которые вы можете закодировать в своем java файле script, используя

encodeURIComponent();

А также для вашей легкости, если вы хотите добавить какие-либо специальные символы в ваш url, например, ., просто установите свойство relaxedUrlToFileSystemMapping в свой web.config

<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true" />

Или вы можете просто добавить или удалить некоторые из символов, чтобы заблокировать/разрешить использование requestPathInvalidCharacters в web.config

<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,*,%,&amp;,:,\,?"/>

Ответ 4

Спасибо!

Теперь я могу использовать "+" в URL, но все еще возникают проблемы с "&". Выдает ошибку 400 (Bad Request).