我现在需要使用Java制作一个桌面端窗体程序,完成上述api的请求并解析显示返回的JSON数据,请帮我完成代码
时间: 2024-02-11 11:08:46 浏览: 148
当然可以,下面是一个简单的示例代码,可以帮你完成这个任务:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class MyWindow extends JFrame implements ActionListener {
private JTextField text;
private JTextArea result;
public MyWindow() {
super("API请求示例");
setLayout(new FlowLayout());
JLabel label = new JLabel("请输入API请求地址:");
add(label);
text = new JTextField(30);
add(text);
JButton button = new JButton("发送请求");
button.addActionListener(this);
add(button);
result = new JTextArea(20, 40);
add(result);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("发送请求")) {
String urlString = text.getText();
try {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("请求失败!HTTP错误代码:" + conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
br.close();
result.setText(sb.toString());
} catch (Exception ex) {
ex.printStackTrace();
result.setText("请求失败!错误信息:" + ex.getMessage());
}
}
}
public static void main(String[] args) {
new MyWindow();
}
}
```
这段代码展示了一个简单的窗体程序,其中包含一个文本框和一个按钮,用户可以在文本框中输入API请求地址,然后点击按钮发送请求,并将返回的JSON数据显示在文本区域中。
这个程序使用了Java的标准库中的URLConnection类来发送HTTP请求,并使用BufferedReader类来读取返回的数据。注意,这个示例代码只是一个简单的示例,实际应用中可能需要更加复杂的逻辑来处理请求和解析JSON数据。
阅读全文