Как я могу достичь своих веб-действий Api с помощью амперсанда в строке запроса?Reach Web Api Действие с амперсандом в строке запроса
Это работает:
http://localhost:12345/api/MyController/MyAction?user=test&pw=abc123
Это не:
http://localhost:12345/api/MyController/MyAction?user=test&pw=abc123
Сообщение об ошибке является:
{
"message": "No HTTP resource was found that matches the request URI 'http://localhost:12345/api/MyController/MyAction?user=test&pw=abc123'.",
"messageDetail": "No action was found on the controller 'MyController' that matches the request."
}
Я думал, Web API будет автоматически декодировать параметры строки запроса, но apperently его не ...
Это очевидно для меня. Дело в том, как я могу заставить его работать с амперсандом? URL-адрес входит в XML-файл, поэтому мне нужно его избежать. – iappwebdev
Спецификация HTTP не позволяет вам отправлять ее таким образом и интерпретировать ее как две строки строки запроса. Ваши варианты: 1) Unescape перед отправкой или 2) Сделайте свой API просто принятым «пользователем», а затем проанализируйте его на C# после его поступления. # 2 кажется hacky - # 1 будет иметь больше смысла. Поскольку я не уверен, какой язык вы используете в своем коде, который вызывает API, я не знаю, как предложить, как его игнорировать. – grayimp
Хорошо, я пойду с # 1, спасибо! – iappwebdev