gpt4 book ai didi

html - 如何从 WCF WebAPI WebGet 返回原始 html

转载 作者:太空狗 更新时间:2023-10-29 13:20:33 25 4
gpt4 key购买 nike

我有一个作为 Windows 服务运行的自托管 WCF 服务,使用 WebAPI 来处理 REST 内容,它运行良好。

我意识到我真的应该使用 IIS 或类似的工具来制作实际的网页,但是有什么方法可以让服务调用返回“只是”html?

即使我指定“BodyStye Bare”,我仍然会得到围绕实际 HTML 的 XML 包装器,即

<?xml version="1.0" encoding="UTF-8"?>
<string> html page contents .... </string>


[WebGet(UriTemplate = "/start", BodyStyle = WebMessageBodyStyle.Bare)]
public string StartPage()
{
return System.IO.File.ReadAllText(@"c:\whatever\somefile.htm");
}

有什么办法可以做到这一点还是我应该放弃?

最佳答案

bodystyle 属性对 WCF Web API 没有影响。下面的示例将起作用。这不一定是最好的方法,但假设我没有打错字,它应该可以工作:-)。

[WebGet(UriTemplate = "/start")] 
public HttpResponseMessage StartPage() {
var response = new HttpResponseMessage();
response.Content = new StringContent(System.IO.File.ReadAllText(@"c:\whatever\somefile.htm"));
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
return response;
}

将文件作为流读取并使用 StreamContent 而不是 StringContent 可能更有意义。或者创建您自己的接受文件名作为参数的 FileContent 类也很容易。

并且,自托管选项与使用 IIS 一样是返回静态 HTML 的可行方式。在幕后,他们使用相同的 HTTP.sys 内核模式驱动程序来传送位。

关于html - 如何从 WCF WebAPI WebGet 返回原始 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8117246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com