如何在 ColdFusion 中向客户端发送 HTTP 状态代码和响应消息?
How can I send HTTP Status Code and a Response messages to the client in ColdFusion?
我正在实施单点登录功能。我有一个 ColdFusion 应用程序,它从 Java 应用程序(POST 请求)获取输入参数。我需要做的是 return 状态代码和说明,以指示用户是否具有访问权限以及如果用户无权访问我的 CF 应用程序时失败的原因。
像下面这样的东西:
我创建了一个 cfc 并将其作为 API 提供,以允许 Java 用户将他们的 UserName、CustomerID 传递到我的 CF 应用程序。
我需要在同一个文件中编写 return 响应逻辑吗?就像一个 "throw" 错误代码 (cfthrow).
的函数
或者我可以使用 "cfheader"...类似这样的东西:
<cfif form.CustomerId EQ queryname.CustID>
<CFHEADER
STATUSCODE="200"
STATUSTEXT="Success">
<cfelse>
<CFHEADER
STATUSCODE="400"
STATUSTEXT="Insufficient Input">
</cfif>
有人可以帮我吗?
您可以使用:
component restpath = "your/rest/path" rest="true"
{
remote void function errorTest()
httpmethod = "GET"
restpath = ""
{
cfheader(
statuscode = 401,
statustext = "Invalid Password"
);
// or
restSetResponse({
status = 401,
headers = { explanation = "Invalid Password" }
});
// or, using Java
getPageContext()
.getResponse()
.getResponse()
.sendError( JavaCast( 'int', 401 ), "Invalid Password" );
// or, using the deprecated setStatus(int,string) method in Java
getPageContext()
.getResponse()
.getResponse()
.setStatus( JavaCast( 'int', 401 ), "Invalid Password" );
}
}
注意:我还没有找到使用 restSetResponse()
直接设置消息的方法,所以这个 returns 一个带有消息的自定义 header。
我正在实施单点登录功能。我有一个 ColdFusion 应用程序,它从 Java 应用程序(POST 请求)获取输入参数。我需要做的是 return 状态代码和说明,以指示用户是否具有访问权限以及如果用户无权访问我的 CF 应用程序时失败的原因。
像下面这样的东西:
我创建了一个 cfc 并将其作为 API 提供,以允许 Java 用户将他们的 UserName、CustomerID 传递到我的 CF 应用程序。 我需要在同一个文件中编写 return 响应逻辑吗?就像一个 "throw" 错误代码 (cfthrow).
的函数或者我可以使用 "cfheader"...类似这样的东西:
<cfif form.CustomerId EQ queryname.CustID>
<CFHEADER
STATUSCODE="200"
STATUSTEXT="Success">
<cfelse>
<CFHEADER
STATUSCODE="400"
STATUSTEXT="Insufficient Input">
</cfif>
有人可以帮我吗?
您可以使用:
component restpath = "your/rest/path" rest="true"
{
remote void function errorTest()
httpmethod = "GET"
restpath = ""
{
cfheader(
statuscode = 401,
statustext = "Invalid Password"
);
// or
restSetResponse({
status = 401,
headers = { explanation = "Invalid Password" }
});
// or, using Java
getPageContext()
.getResponse()
.getResponse()
.sendError( JavaCast( 'int', 401 ), "Invalid Password" );
// or, using the deprecated setStatus(int,string) method in Java
getPageContext()
.getResponse()
.getResponse()
.setStatus( JavaCast( 'int', 401 ), "Invalid Password" );
}
}
注意:我还没有找到使用 restSetResponse()
直接设置消息的方法,所以这个 returns 一个带有消息的自定义 header。