gpt4 book ai didi

java - 如何查看 http-response-code 406 异常的消息

转载 作者:行者123 更新时间:2023-12-04 04:46:09 24 4
gpt4 key购买 nike

我正在使用 ColdFusion,但我认为这更像是一个 Java 问题。我正在向 Web 服务发送 xml 帖子。当我尝试读取响应时,我从以下行收到一个 http 响应代码为 406 的异常:

var inputStreamReader = CreateObject("java","java.io.InputStreamReader").init(variables.connection.getInputStream());

Web 服务文档对 406 说明如下:“如果请求已处理但包含无效或不足的信息来完成 API 方法,则将返回 406。将返回一条描述错误的消息。”

我的问题是,如何检索或以其他方式查看消息内容包含的内容?

最佳答案

我们需要看到更多的代码,以及异常。但是,基于您使用的事实 getInputStream ,我猜你正在使用 HTTPURLConnection , 而不是 cfhttp。如果是这样,您需要在处理响应之前检查返回的状态代码。原因如下:

如果请求成功,则将响应写入 input stream .否则,它被写入 error stream (这可能是您的错误“消息”结束的地方)。因此,您需要添加一些逻辑,根据返回的 HTTP 状态代码读取适当的流。

根据您的评论,我假设您已经知道如何阅读 InputStream并返回一个字符串。只需将该逻辑包装在名为 streamToString 的自定义函数中,那么你可以像这样重复使用它:

  // extract status code and message
variables.result.code = variables.connection.getResponseCode();
variables.result.message = variables.connection.getResponseMessage();

// Simplified example, adjust as needed
if (variables.result.code == variables.connection.HTTP_OK) {
variables.result.text = streamToString(variables.connection.getInputStream());
}
else {
variables.result.error = streamToString(variables.connection.getErrorStream());
}

// show results
WriteDump(variables.result);

关于java - 如何查看 http-response-code 406 异常的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18153249/

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