我已完成在 Oracle 服务总线 11g 上设置 REST api。我在 OSB 上尝试了测试控制台,它工作正常并以 JSON 格式返回结果。但是当我在 JAVA 上调用 REST api 时,问题就出现了。
请点击下面的超链接查看错误消息和代码
the URL that i fired is URL of OSB proxy service, then it will call to REST URL endpoint
我得到的错误: it shows socket exception and related to the input stream
最佳答案
删除
LOGGER.info(conn.getResponseMessage());
并更改接受
conn.setRequestProperty("Accept", "application/json");
然后就这样做
if (conn.getResponseCode() != 200) {
throw new RuntimeException("HTTP Response Code: " + conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
// . . .
conn.disconnect();
如果您仍然遇到问题,则意味着您通过代码发送的请求与浏览器不同。要解决此问题,请检查浏览器中的请求详细信息,以及请求 header 是否与代码中的完全匹配,包括 User-Agent
、POST
/GET
。可以通过网络收听。有很多工具可以帮助您识别 HTTP 请求详细信息。
关于java - Oracle 服务总线 11G REST api Java 连接到 OSB 时出现套接字问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47830259/