我在寫有這樣的方法的REST Web服務:REST Web服務「錯誤的請求」
[WebGet(
UriTemplate = "/Test/{p1}/{p2}",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Xml)]
public string Test(string p1, string p2)
{
// Do something here
}
所以,如果我把我的basurl/Test/prova/test
方法Test
被調用,P1 =「PROVA」和P2 =「測試」和一切工作正常。
問題是當我嘗試使用具有(例如)設置了一個param %焦炭:連翻譯它在URL代碼,當我嘗試打電話basurl/Test/prova/te%25st
我得到了
Errore HTTP 400 - 錯誤的請求。
如果我使用
[WebGet(
UriTemplate = "/Test/{p1}?p2={p2}",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Xml)]
public string Test(string p1, string p2)
{
// Do something here
}
,並呼籲basurl/Test/prova?p2=te%25st
它的工作原理。
爲什麼?我能做些什麼來讓第一個語法工作?
更新:
看看我的答案與可能的解決方案。
如果有人發現一個更好的,請張貼它!
感謝