Tap*_*ose 15 java url ioexception http-status-code-400
我试图从URL获取InputStream.该URL可以从Firefox打开.它返回一个json,我已经在Firefox中安装了一个用于查看json的插件,所以我可以在那里查看它.
所以我试图通过以下方式从Java中获取它:
URL url = new URL(urlString);
URLConnection urlConnection = url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
Run Code Online (Sandbox Code Playgroud)
但它在urlConnection.getInputStream()中抛出IOException.
我也尝试过:
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = url.openStream();
Run Code Online (Sandbox Code Playgroud)
但没有运气.
任何信息都很明显.提前致谢.
Tap*_*ose 32
谢谢大家.这是一个奇怪的问题,但最后我解决了它.
我要求的网址是
http://api.themoviedb.org/2.1/Movie.search/en/json/api_key/a nightmare on elm street
Run Code Online (Sandbox Code Playgroud)
现在浏览器在内部用"%20"替换"榆树街上的噩梦"之间的空格并进行解析.这就是请求的服务器可以响应该请求的原因.但是从Java中我没有用"%20"替换那个空格,所以它变成了Bad Request,source.
现在它正在运作.
BufferedReader reader = new BufferedReader(new InputStreamReader(((HttpURLConnection) (new URL(urlString)).openConnection()).getInputStream(), Charset.forName("UTF-8")));
Run Code Online (Sandbox Code Playgroud)
我有一个类似的问题,我的网址是:
http://www.itmat.upenn.edu/assets/user-content/documents/ITMAT17. October 10 2017_.pdf
Run Code Online (Sandbox Code Playgroud)
其中显然包含空格。
这些导致java.io.IOException服务器返回HTTP响应代码:400在以下代码中:
java.net.URL url = new URL(urlString);
java.io.InputStream in = url.openStream();
Run Code Online (Sandbox Code Playgroud)
如果复制上面的url并粘贴到浏览器中,您将意识到浏览器为空格添加了'%20'。因此,我使用以下代码手动完成了操作,问题得以解决。
if(urlString.contains(" "))
urlString = urlString.replace(" ", "%20");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88332 次 |
| 最近记录: |