我有一个 WCF Restful 服务,我想要返回 HttpResponseMessage 的方法,因为它看起来是结构化的,而不仅仅是返回数据或异常或其他可能到达那里的东西。
我假设这是正确的,如果不让我知道,但我的问题是当我尝试设置时会发生什么HttpResponseMessage.Content
。当我执行此操作时,我进行 RESTful 调用的客户端会请求身份验证。
这是我的代码:
在界面中:
[WebGet(UriTemplate = "/GetDetailsForName?name={name}"
, ResponseFormat = WebMessageFormat.Json)]
HttpResponseMessage GetDetailsForName(string name);
在课堂里:
public HttpResponseMessage GetDetailsForName(string name)
{
HttpResponseMessage hrm = new HttpResponseMessage(HttpStatusCode.OK)
{
//If I leave this line out, I get the response, albeit empty
Content = new StringContent("Hi")
};
return hrm;
}
我想尝试使用Request.CreateResponse
但我似乎无法从我的 WCF Restful 方法中获取 Request 。 OperationContext.Current.RequestContext 没有 CreateResponse。
有什么指点吗?
不幸的是,这行不通。演示的代码说:
构建一个HttpResponseMessage
对象,使用 JSON 序列化器序列化它并通过线路传递结果。
问题是HttpResponseMessage
是一次性的,不适合序列化,而StringContent
根本无法序列化。
至于为什么您被重定向到身份验证表单 -
服务无法序列化时会抛出异常StringContent
并返回 400 HTTP 状态代码,该状态代码被解释为身份验证问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)