簡體   English   中英

當url段為json字符串時,在訪問WCF Rest服務(WebGet)時未找到404

[英]Not found 404 while accessing WCF Rest service (WebGet) when url segment is json string

在我的項目中,我必須將動態Json字符串傳遞給WCF Rest服務web get。

當我傳遞一些字符串,如下所示一切正常。

HTTP://本地主機:58014 / MyService.svc / API /查詢/ somestirng

但當我傳遞json字符串作為url段未找到錯誤發生。

{ “密鑰”: “UserHomePageInfoQuery”, “消息”: “{\\” 用戶名\\ “:\\” usr83 \\ “}”}

HTTP://本地主機:58014 / MyService.svc / API /查詢/ 257B%2522Key%2522%253A%2522UserHomePageInfoQuery%2522%252℃%2522Message%2522%253A%2522%257B%255℃%2522UserName%255℃%2522%253A% 255C%2522usr83%255C%2522%257D%2522%257D

這是我的服務運營合同定義

    [OperationContract]
    [WebGet(UriTemplate = "api/queries/{queryString}",                        
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json)]
    Response Query(string queryString);

我知道我可以使用POST,但所有服務請求都是查詢

我通過POST為命令提供了另一項服務

[OperationContract]
        [WebInvoke(UriTemplate = "api/commands/",
            Method = "POST",            
            RequestFormat = WebMessageFormat.Json,
            BodyStyle = WebMessageBodyStyle.Bare,
            ResponseFormat = WebMessageFormat.Json)]       
        Response Execute(Request request)

我在{queryString}參數中使用通配符(*),這意味着“URI的其余部分”

https://msdn.microsoft.com/en-us/library/bb675245.aspx

    [OperationContract]
    [WebGet(UriTemplate = "api/queries/{*queryString}",                        
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json)]
    Response Query(string queryString);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM