Skip to Content (Press Enter)
OutSystems.com
Personal Edition
Community
Support
Training
Training
Online Training
Developer Schools
Boot Camps
Certifications
Tech Talks
Documentation
Documentation
Overview
ODC
O11
Forums
Forge
Get Involved
Get Involved
Jobs
Ideas
Members
Mentorship
User Groups
Platform
Platform
ODC
O11
Search in OutSystems
Log in
Get Started
Back to Forums
Robert Chanphakeo
115
Views
2
Comments
BUG FOUND? REST Expose - Unable to output JSON content response (http status 401)
Question
Whats going on here?
If you set the HTTP status code to 401 via HTTPRequestHandler.SetStatusCode Outsystems will not return your JSON response, instead it return the standard 401 response with the following html (your JSON response is never used)
----------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>401 - Unauthorized: Access is denied due to invalid credentials.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;}
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;}
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
-->
</style>
</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>
----------------
Now, if you change the status code to something else, example http status code: 403
You will get the correct JSON response via content body.
{
"Response": {
"Success": false,
"Timestamp": "2016-01-14T03:47:39Z",
"Build": "1.0.0",
"Errors": [
{
"Code": "1001",
"Type": "access_denied",
"Message": "Error validating gateway token.",
"Property": "GatewayToken"
}
],
"Message": "Error validating gateway token.",
"Language": "en-AU"
}
}
João Rosado
Staff
Hi Robert,
It's a known limitation caused by IIS in classic mode. IIS replaces the response content regardless of anything else. (and none of the 100+ workarounds that you will find by googling actually work correctly in IIS classic mode).
Since Integrated Mode is currently not supported by the Platform, I recommend you to stick with status code 400 even though it has a slighty different meaning.
Regards,
João Rosado
Robert Chanphakeo
joao, thanks.
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting.
See the full guidelines
Loading...