gpt4 book ai didi

java - 从 servlet 调用外部 Web 服务

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:37 24 4
gpt4 key购买 nike

我正在开发一个 servlet,它获取网络服务的名称并可以将请求转发到外部网络服务,例如:http://www.webservice.com/...

我已经构建了一个拦截响应输出的响应包装器,但我无法将请求转发到外部 Web 服务,只有当我将请求重定向到同一服务器上的 servlet 时它才有效。

例子:

request.getRequestDispatcher("aMyServlet").forward(request, response) // WORKS
request.getRequestDispatcher("http://www.webservice.com/...").forward(request, response)

不是因为 Tomcat 在服务器上搜索 http://www.webservice.com/... 作为本地资源。

如何进行外部请求?

谢谢

最佳答案

forward 您正在使用的方法用于服务器资源之间的通信,(例如:servlet 到 servlet,如您所知)如果您想重定向到另一个位置,您可以使用 HttpServletResponse 的 sendRedirect 方法。更好的选择是 执行您自己的 HTTP 请求并将结果流式传输回浏览器。这听起来比实际更难。基本上你创建一个java.net.HttpURLConnection 与您要访问的网站的 URL“重定向”到。这实际上可以包含查询参数(只要它们不是太大)因为它永远不会发送到用户的浏览器either 并且不会出现在浏览器 URL 栏中。打开连接,得到内容并将其写入 Servlet 的 OutputStream。

关于java - 从 servlet 调用外部 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2852424/

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