gpt4 book ai didi

java - 尝试在我的 Spring 项目中获取 InputStream 时出现 Http 502 错误

转载 作者:行者123 更新时间:2023-12-02 04:38:13 26 4
gpt4 key购买 nike

我在基于 Spring 的网络项目中使用第 3 方 Java API 从 Google Search Appliance 获取结果。 API 构建的 URL 看起来是正确的。我已经在网络浏览器上发送了一个请求,其中包含由 API 生成的 URL,并且它有效(搜索结果正确返回)。此外,我已经尝试使用我创建的独立 Java 项目来获取 InputStream 的 URL,它也有效。当我尝试在项目中获得结果时,问题就出现了。它在创建InputStream的阶段崩溃并给出以下错误:

java.io.IOException: Server returned HTTP response code: 502 for URL: http://myIP:80/search?access=p&output=xml&client=default_frontend&lr=lang_en&num=100&requiredfields=gsaentity_language%3AEnglish&site=default_site
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1626)
at java.net.URL.openStream(URL.java:1037)
at net.sf.gsaapi.GSAClient.search(Unknown Source)
at net.sf.gsaapi.GSAClient.getGSAResponse(Unknown Source)
at net.sf.gsaapi.GSAClient.getGSAResponse(Unknown Source)

到目前为止我尝试过但对我不起作用的事情:

  • 我使用 API 的接口(interface)(重写)来处理 HttpConnection 并手动创建 InputStream。通过此接口(interface),可以向 HttpConnection 添加一些代理选项。 (名为 GSAClientDelegate 的接口(interface),具有 getResponseStream 方法)
  • 我检查了 API 的代码,以防发现导致代理问题等的情况。但我找不到任何类似的情况。
  • 正如答案所述,我已经检查了集合、前端、代理样式表名称,它们都没有问题。否则我无法通过网络浏览器或独立的 Java 项目获得结果,对吗?

已经快 1 周了,我一直面临这个恼人而神秘的错误,我开始发疯了。

对于这个问题我能做什么?

最佳答案

我终于弄清楚了问题的根源。这是因为 java.net.HttpUrlConnection API。它使用共享连接工厂,这可能会导致这样的错误。我已将其替换为 Apache HttpClient。并且没有出现任何问题:

    import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
.........
public InputStream getConnectionStream(String fullUrl){
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(fullUrl);
HttpResponse response = client.execute(request);
InputStream is = response.getEntity().getContent();

return is;
}

关于java - 尝试在我的 Spring 项目中获取 InputStream 时出现 Http 502 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30504097/

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