HTTP状态代码200返回预期结果.但是,当状态是badrequest或未经授权的情况时,我的C#WebAPI 1正在返


public HttpResponseMessage Get()
    {
        sessionResponse.message = "Not permitted";
        sessionResponse.code = statusCode.Unauthorized;
        HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Unauthorized, sessionResponse);
        return response;
    }

这给了我总的HTML页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>401 - Unauthorized: Access is denied due to invalid credentials.</title></head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
<div class="content-container"><fieldset>
<h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2>
<h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>
 </fieldset></div>
</div>
</body>
</html>

但是当我运行此代码时:

public HttpResponseMessage Get()
    {
        sessionResponse.message = "Not permitted";
        sessionResponse.code = statusCode.Unauthorized;
        HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, sessionResponse);
        return response;
    }

我变得越来越想要的Json: { 消息:"不允许", 代码:" 401" }

所以,当响应不是httpstatuscode.ok时,我正在面临问题,我没有得到JSON。如果状态代码不错请求或未经授权,我将获得文本/html。该怎么办?我在Apiconfig文件中添加了JSON Formatter,但没有运气。

您可以使用Request.CreateResponse过载,该Overload通过string接受MediaTypeFormatter类型或媒体类型,以明确说明您希望使用的格式化器:

return Request.CreateResponse(HttpStatusCode.Unauthorized, sessionResponse, "application/json");

相关内容