0

我查看了505响应代码,看到它是“Web服务器(运行网站)不支持或拒绝支持客户端指定的HTTP协议版本”

我试图在网络服务器上访问的网站是https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.quote where symbol %3D"msft"&diagnostics=true&env=店铺

我能够访问该站点并看到它提供了 xml 数据。但是,当我尝试与该站点建立 HttpsURlConnection 时,我得到了 505 响应代码,这样做的代码是

URL url = new URL(params[0]);
URLConnection connection = url.openConnection();
HttpsURLConnection httpConnect = (HttpsURLConnection) connection;
int responseCode = httpConnect.getResponseCode();

我在运行时检查了 params[0] 的值,发现其中包含正确的 url。有谁知道我该如何解决这个问题?Web 服务器应该支持 https,因为该链接有效。我不明白为什么会发生 505 错误。

4

2 回答 2

2

java.net.URL将允许您创建带有空格的无效 URL,从而导致此错误。查询参数中的空格应编码为+,因此请设置您的 URL:

https://query.yahooapis.com/v1/public/yql?q=select+*+from+yahoo+finance.quote+where+symbol+%3D"msft"&diagnostics=true&env=store

此请求仍然不正确,将导致 400(“expecting table got 'finance'”)。从这些问题:

我相信你想要:

https://query.yahooapis.com/v1/public/yql?q=select+*+from+yahoo.finance.quote+where+symbol+%3D"msft"&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys
于 2014-09-28T10:17:40.600 回答
-1

我想我有问题。我在网上查看,发现其他人有问题,并且是 url 内的空格。我不知道如何解决这个问题

于 2014-09-28T02:10:01.723 回答