我目前正在努力ServiceStack,对它来说很新.(非常有趣;他们说他们比WCF和REST WCF(GET,POST,PUT,DELETE)更好)
我发现它很有帮助,只需要很少的代码就可以快速运行它.
目前我想发布数据.我制作类的对象并发送POST请求.
JsonServiceClient client = new JsonServiceClient(myURL);
MYclass cls= MakeObjectForServiceStackToInsertData();
var res = client.Post<MYClass>("/postrequest", cls);
Run Code Online (Sandbox Code Playgroud)
通过上面的代码你可以理解,我正在做的事情是什么.我想我没错.如果你感到困惑,请告诉我.
我可以(KEY->Value)在我的客户端应用程序中为我的类创建一个JSON字符串(手动),并使用服务堆栈将其发送到服务器以发送数据.
即
string str = myJsonString();
var res = client.Post<.....>
Run Code Online (Sandbox Code Playgroud)
因此,如果我可以在ServiceStack的POST事件中生成JSON字符串并对其进行反序列化并在数据库中插入数据,那么不是发布整个对象,而是发布它.
任何的想法?
我不确定你想要传递原始JSON字符串的动机是什么,但是如果要确保只传入一个小的JSON有效负载,你可以放心地使用Json/Jsv ServiceClients,因为它们不包含null值因此只会传递您填充的字段.
您可以直接使用Json序列化程序验证哪些是串行化的.
Console.WriteLine(JsonSerializer.SerializeToString(cls));
Run Code Online (Sandbox Code Playgroud)
如果您只想测试/调试服务,最好的方法是通过使用查询字符串填充字段来简单地使用浏览器,即:
http://localhost/myservice/postrequest?Field1=value1&Field2=value2
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,如果要传入原始JSON字符串,则需要使用另一个HTTP客户端,在这种情况下,最好不要调用Web服务POST表单数据,因为它本身支持所有HTTP客户端和您不需要JSON序列化器来做.例如,这里是如何通过带有curl的HTTP POST调用相同的服务:
curl -d "Field1=value1&Field2=value2" http://localhost/myservice/postrequest
Run Code Online (Sandbox Code Playgroud)
您可以通过许多其他方式调用相同的服务,有关完整列表,请参阅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>
Run Code Online (Sandbox Code Playgroud)
由于您从Web浏览器发布它,Service Stack将返回HTML,但是如果您想查看JSON结果,您只需要将?format = json附加到url.
或者您可以简单地使用JavaScript和jQuery POST到您的Web服务,下面的示例将返回结果为JSON,它会自动转换为JS对象:
$.ajax({
type: 'POST',
url: "http://localhost/myservice/postrequest",
data: {Field1: "value1", Field2: "value2"},
success: function(r) { alert(r.Result) },
dataType: "application/json"
});
Run Code Online (Sandbox Code Playgroud)
使用Web浏览器调试服务的好处是,您可以使用内置网络检查器(即Chrome中的Web检查器)查看Web服务的完整请求/响应.
如果您不熟悉它,我还建议您熟悉Fiddler,它可以让您轻松分析HTTP流量.
| 归档时间: |
|
| 查看次数: |
12343 次 |
| 最近记录: |