1

ServiceStack で REST サービスを作成しましたが、REST URL で呼び出すと、サービスをリクエスト オブジェクトにポストした JSON が逆シリアル化されません。デフォルトの URL を使用するか、クエリ文字列にパラメーターを指定すると、正常に動作します。

私のリクエストオブジェクト:

[Route("/myservice", "POST")]
public class MyRequestObject
{
    public string MyString { get; set; }
    public int MyInt { get; set; }
}

私のサービス:

public class MyService : Service
{
    public object Post(MyRequestObject request)
    {
        return new
            {
                MyString = request.MyString,
                MyInt = request.MyInt
            };
    }
}

そして、私がサービスに投稿するjson:

{"myString": "abc", "myint": 42}

私の REST URL は /api/myservice で、デフォルトの URL は /api/json/asynconeway/MyRequestObject です。サービスが REST とデフォルト URL の両方で呼び出されることを確認しました。

ご意見をお寄せいただきありがとうございます。

成功ヘッダー

リクエスト

POST /api/json/asynconeway/MyRequestObject HTTP/1.1
Host: bd.local
Connection: keep-alive
Content-Length: 32
Origin: chrome-extension://aejoelaoggembcahagimdiliamlcdmfm
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4
Accept: application/json
Accept-Encoding: gzip,deflate,sdch
Accept-Language: da-DK,da;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

応答

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
COMMERCE-SERVER-SOFTWARE: Microsoft Commerce Server, Enterprise Edition
X-Powered-By: ServiceStack/3,914 Win32NT/.NET
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 01 Oct 2012 10:32:37 GMT
Content-Length: 29

エラー ヘッダー

リクエスト

POST /api/myservice HTTP/1.1
Host: bd.local
Connection: keep-alive
Content-Length: 32
Origin: chrome-extension://aejoelaoggembcahagimdiliamlcdmfm
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4
Accept: application/json
Accept-Encoding: gzip,deflate,sdch
Accept-Language: da-DK,da;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

応答

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
COMMERCE-SERVER-SOFTWARE: Microsoft Commerce Server, Enterprise Edition
X-Powered-By: ServiceStack/3,914 Win32NT/.NET
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 01 Oct 2012 10:30:38 GMT
Content-Length: 11
4

1 に答える 1

1

問題は、POST を実行するコードにある可能性があります。データ json は文字列化されていますか。例:

JSON.stringify({"myString": "abc", "myint": 42})
于 2013-09-28T18:33:19.140 に答える