我已按照有关如何在此处创建 ServiceStack 的说明进行操作:
https://github.com/ServiceStack/ServiceStack/wiki/Create-your-first-webservice
我确定我已经完全按照它的意思去做了,但是一旦我运行了 Web 应用程序。我会看到我的回复的“快照” View 。我知道当我没有默认 View /网页时会发生这种情况。我将项目设置为 ASP.net 网站,而不是 ASP.net MVC 网站。这可能是问题吗?
我还使用以下 C# 代码编写了一个测试控制台应用程序。它得到的响应是 HTML 网页而不是普通字符串,例如“你好约翰”。
static void sendHello()
{
string contents = "john";
string url = "http://localhost:51450/hello/";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentLength = contents.Length;
request.ContentType = "application/x-www-form-urlencoded";
// SEND TO WEBSERVICE
using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
{
writer.Write(contents);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string result = string.Empty;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
result = reader.ReadToEnd();
}
Console.WriteLine(result);
}
如何关闭“快照” View ?我究竟做错了什么?
最佳答案
浏览器正在请求 html,因此 ServiceStack 正在返回 html 快照。
有几种方法可以停止快照 View :
Accept
header 设置为 application/json
或 application/xml
之类的内容,这将分别将响应序列化为 json 或 xml。这是 ServiceClients 在内部做的事情 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Accept = "应用程序/json";
...
format
的查询字符串参数并将其设置为 json
或 xml
string url = "http://localhost:51450/hello/?format=json";
关于ServiceStack - 关闭快照,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18653065/