【发布时间】:2015-10-08 10:15:00
【问题描述】:
我正在尝试构建一个简单的 RESTful 应用程序。我有 WFC 服务。
在界面中我有下一个方法:
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "get")]
Stream GetPage();
并实现这个方法:
public System.IO.Stream GetPage()
{
MemoryStream ms = new MemoryStream();
StreamWriter sw = new StreamWriter(ms);
sw.WriteLine("HTTP/1.0 200 OK");
sw.WriteLine("Content-Type: text/html");
sw.Write(Properties.Resources.page);
sw.Flush();
ms.Position = 0;
return ms;
}
资源页面:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
Hello word!!!
</body>
</html>
但是当我转到localhost/MyService/Get 时,浏览器会下载文件而不是显示它。
如何在浏览器中显示此内容?
【问题讨论】:
-
您是在尝试创建 RESTful 应用程序/服务,还是 Web 服务器?
-
RESTful 服务。我了解我的服务运行正常。现在我需要在客户端显示结果。
-
您的客户端是网络浏览器吗(与网络服务器通信,并期望 HTTP 响应)?
-
为什么要从 REST 服务返回 HTML?为什么使用 WCF 而不是 WebAPI?
-
@Amit,是的,客户端是网络浏览器。我想在浏览器中显示内容。我使用 Fiddler 来查看我得到的响应。服务器返回
Content-Type: application/octet-stream.. 但是为什么呢?