import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; public class HttpJsonRequest { public static void main(String[] args) { try { URL url = new URL("https://news-at.zhihu.com/api/4/news/latest"); URLConnection connection = url.openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; StringBuilder sb = new StringBuilder(); while ((line = reader.readLine()) != null) { sb.append(line); } reader.close(); String json = sb.toString(); // 解析JSON,这里以解析stories数组中第一个元素的title字段为例 int index = json.indexOf("\"title\":"); String title = json.substring(index + 9, json.indexOf(",", index)).replace("\"", ""); System.out.println(title); } catch (Exception e) { e.printStackTrace(); } } }
时间: 2024-02-15 13:31:14 浏览: 22
以下是该代码的流程图:
![HttpJsonRequest流程图](https://i.imgur.com/HR9o0nS.png)
流程图说明:
1. 程序开始执行后,创建一个URL对象,用于指定要请求的URL地址。
2. 打开URL连接,获取URLConnection对象。
3. 通过URLConnection对象获取输入流,并创建一个缓冲读取器BufferedReader。
4. 通过缓冲读取器循环读取输入流中的数据,将其拼接成一个字符串。
5. 关闭输入流和缓冲读取器,将读取到的JSON字符串赋值给变量json。
6. 解析JSON字符串,获取stories数组中第一个元素的title字段,并输出到控制台上。
相关问题
解析以下代码:import java.net.*; import java.io.*; public class URLConnectionReader { public static void main (String args[]) { try{ //URL gis = new URL("http://www.ztenc.com.cn/test.htm"); URL gis = new URL("file:/c:/a.txt"); URLConnection uc = gis.openConnection(); BufferedReader in = new BufferedReader( new InputStreamReader( uc.getInputStream() ) ); String line; while( (line = in.readLine()) != null ) { System.out.println(line); } in.close(); }catch(Exception e){ System.out.println(e); } } }
这段代码是用于从指定的URL或文件中读取内容并将其打印到控制台。与之前的代码类似,这里也使用了`java.net.URL`类和`java.io.BufferedReader`类来实现。
首先,通过创建一个`URL`对象来指定要读取的资源的位置。在这个例子中,有两个URL对象,一个是注释掉的`http://www.ztenc.com.cn/test.htm`,另一个是`file:/c:/a.txt`。您可以根据需要选择使用其中一个URL。
然后,通过调用`openConnection()`方法获取到一个`URLConnection`对象,它表示与URL之间的连接。
接下来,创建一个`BufferedReader`对象来读取URL或文件的内容。通过调用`getInputStream()`方法获取URLConnection的输入流,并将其传递给`InputStreamReader`构造函数进行处理。
然后,使用`readLine()`方法逐行读取内容,并将每行内容打印到控制台。
在整个代码块的末尾,使用`close()`方法关闭输入流,并捕获任何可能发生的异常并进行处理。
请注意,在运行代码之前,请确保URL或文件的位置是有效的,并且您具有正确的访问权限。
如果您有任何进一步的问题,请随时提问!
java 抓取服务器文件夹_java 怎么通过url获取远程服务器上某个文件夹下的所有文件名...
你可以使用Java中的URLConnection类和BufferedReader类来获取远程服务器上某个文件夹下的所有文件名。以下是一个简单的示例代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class GetRemoteFolderFiles {
public static void main(String[] args) throws IOException {
String folderUrl = "http://example.com/folder/";
URL url = new URL(folderUrl);
URLConnection conn = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
while ((inputLine = br.readLine()) != null) {
// 这里可以对文件名进行处理
System.out.println(inputLine);
}
br.close();
}
}
```
以上代码将输出远程服务器上指定文件夹下的所有文件名。你可以根据需要进行进一步的处理。注意,这个方法只会获取文件名,而不会下载文件。如果需要下载文件,需要使用其他方法。