ServiceStack - 关闭快照

标签 servicestack snapshot

我已按照有关如何在此处创建 ServiceStack 的说明进行操作:

https://github.com/ServiceStack/ServiceStack/wiki/Create-your-first-webservice

我确定我已经完全按照它的意思去做了,但是一旦我运行了 Web 应用程序。我会看到我的回复的“快照” View 。我知道当我没有默认 View /网页时会发生这种情况。我将项目设置为 ASP.net 网站,而不是 ASP.net MVC 网站。这可能是问题吗?

Snapshot

我还使用以下 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 :

  • 首先是使用ServiceClient servicestack 提供的类。这些还具有执行自动路由和强类型响应 DTO 的优点。
  • 下一个方法是设置 Accept对类似 application/json 的请求的 header 或 application/xml这将分别将响应序列化为 json 或 xml。这就是 ServiceClients 在内部所做的工作

  • HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.Accept = "应用程序/json";
    ...
  • 另一种方法是添加一个名为 format 的查询字符串参数。并将其设置为 jsonxml

  • string url = "http://localhost:51450/hello/?format=json";

    关于ServiceStack - 关闭快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18653065/

    相关文章:

    c# - 如何从 Web 服务环境返回 302 重定向

    c# - 如何使用 ServiceStack JsonSerializer 序列化哈希表?

    c# - ServiceStack AppHost 是单例吗?

    eclipse - Eclipse 中的 Wildfly 正在将 Maven SNAPSHOT 添加到 Web 上下文

    android - 对我没有观看的视频流进行屏幕截图

    rename - 如何重命名 GCE 永久磁盘?

    dependencies - gradle带时间戳的快照依赖项解析失败

    c# - 无法从 OrmLiteConfigExtensions (ServiceStack.OrmLite.Core) 加载 System.ComponentModel.Annotations

    用于高性能 REST 服务的 servicestack app host vs iis

    reactjs - 如何在 onSnapshot() 中使用 orderBy() 以便我可以根据时间戳对文档进行排序?