为什么我从服务器获得505错误代码?

时间:2014-09-28 00:43:56

标签: http url https urlconnection httpsurlconnection

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

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

我能够访问该网站并看到它提供了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错误。

2 个答案:

答案 0 :(得分:2)

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

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

此请求仍然不正确,将导致400(“期望表获得'财务'”)。从这些问题:

我相信你想要:

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

答案 1 :(得分:-1)

我想我遇到了问题。我在网上看了看,其他人遇到了问题,而且这是网址内的空间。我不知道如何解决这个问题