生のJSON文字列を渡したいというあなたの動機が何であるかはわかりませんが、小さなJSONペイロードのみを確実に渡す場合は、nullが含まれていないため、Json / Jsv ServiceClientsを自信を持って使用できます値なので、入力したフィールドのみが渡されます。
Json シリアライザーを直接使用して、何がシリアライズされるかを確認できます。
Console.WriteLine(JsonSerializer.SerializeToString(cls));
サービスをテスト/デバッグするだけの場合、最良の方法は、フィールドにクエリ文字列を入力してブラウザーを使用することです。つまり、次のようになります。
http://localhost/myservice/postrequest?Field1=value1&Field2=value2
生の JSON 文字列を渡したいほとんどの場合、別の HTTP クライアントを使用する必要があります。その場合は、すべての HTTP クライアントでネイティブにサポートされているため、代わりにフォーム データを POST する Web サービスを呼び出すことをお勧めします。 JSONシリアライザーを実行する必要はありません。たとえば、curl を使用して HTTP POST 経由で同じサービスを呼び出す方法は次のとおりです。
curl -d "Field1=value1&Field2=value2" http://localhost/myservice/postrequest
同じサービスを呼び出す方法は他にもたくさんあります。完全なリストについては、 Service Stack の Hello World の例を参照してください。HTML を使用して呼び出す方法は次のとおりです。
<form action="http://localhost/myservice/postrequest" method="POST">
<input type="text" name="Field1" value="value1" />
<input type="text" name="Field2" value="value2" />
</form>
Web ブラウザーから投稿しているため、Service Stack は HTML を返しますが、JSON の結果を確認したい場合は、URL に?format=jsonを追加するだけです。
または、単純に JavaScript と jQuery を使用して Web サービスに POST することもできます。以下の例では、JS オブジェクトに自動的に変換される JSON として結果が返されます。
$.ajax({
type: 'POST',
url: "http://localhost/myservice/postrequest",
data: {Field1: "value1", Field2: "value2"},
success: function(r) { alert(r.Result) },
dataType: "application/json"
});
Web ブラウザーを使用してサービスをデバッグする利点は、組み込みのネットワーク インスペクター (つまり、Chrome の Web インスペクター) を使用して、Web サービスの完全な要求/応答を表示できることです。
慣れていない場合は、 HTTP トラフィックを簡単に分析できるFiddlerにも慣れることをお勧めします。