gpt4 book ai didi

java - 从 servlet 中调用外部站点时获取 HTTP 406

转载 作者:行者123 更新时间:2023-11-28 04:41:36 24 4
gpt4 key购买 nike

我的 servlet 中有以下代码:

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
public void doIt(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

URL url = new URL("http://some.url.that.works.well.nl/q=hello&ie=nl&cx=hdyehgfyegywjehdkwed:7364du7");

URLConnection conn = url.openConnection();
conn.connect();

BufferedReader br = new BufferedReader(
new InputStreamReader(conn.getInputStream())); // This line is generating the error
String line = "";
PrintWriter pw = response.getWriter();
while((line = br.readLine()) != null) {
pw.println(line);
}
}

在 tomcat 中运行这个 servlet 会给我一个 http 406 错误。

我尝试做的是从我的 servlet 调用谷歌站点搜索,我想解析收到的 (XML) 结果。 (现在我只打印收到的结果)。在浏览器中尝试 url 给出了正确的结果。

我在这里错过了什么?

亲切的问候,维尔纳

最佳答案

406 HTTP 错误意味着服务器无法使用可接受的内容类型构建对您的请求的响应。这意味着您的 URLConnection 向服务器请求给定的内容类型,但服务器找不到合适的类型。

您可以使用 setRequestProperty(String, String) 更改您的 URLConnection 请求的内容类型方法。您将必须添加如下内容:

conn.setRequestProperty("accept", "text/xml");

(假设服务器将 XML 发回给您)

关于java - 从 servlet 中调用外部站点时获取 HTTP 406,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6055930/

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