You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用XML-RPC客户端开发学生平均成绩计算Java程序的相关问题

实现方案

1. 优化学生信息存储逻辑

原有代码外层的for循环无实际作用,直接用do-while即可控制录入数量。不需要单独创建二维数组,推荐两种存储方案,适配XML-RPC传参要求:

方案A:自定义实体类存储(易维护)

先定义学生实体类:

class Student {
    private String name;
    private double score;
    public Student(String name, double score) {
        this.name = name;
        this.score = score;
    }
    // 转换为XML-RPC兼容的参数格式
    public Object[] toRpcParam() {
        return new Object[]{name, score};
    }
}

修改后的录入逻辑:

Scanner sc = new Scanner(System.in);
ArrayList<Student> studentList = new ArrayList<>();
String respt = "1";
do {
    System.out.println("请输入学生姓名:");
    String name = sc.nextLine();
    System.out.println("请输入学生成绩:");
    double score;
    // 成绩输入校验避免非数字报错
    while (true) {
        try {
            score = Double.parseDouble(sc.nextLine());
            break;
        } catch (NumberFormatException e) {
            System.out.println("成绩格式错误,请输入数字:");
        }
    }
    studentList.add(new Student(name, score));
    System.out.println("输入1继续添加学生,输入其他键结束录入:");
    respt = sc.nextLine();
    System.out.println("******");
} while (respt.equals("1"));

方案B:二维集合存储(无需额外定义类)

如果不想创建实体类,直接用二维结构存储:

// 外层List存所有学生,每个元素是长度为2的数组,依次存姓名、成绩
ArrayList<Object[]> studentList = new ArrayList<>();
// 录入时直接添加数组即可
studentList.add(new Object[]{name, score});

2. 发送数据到XML-RPC服务端

推荐使用Apache XML-RPC客户端实现,示例代码如下:

import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
import java.net.URL;
import java.util.List;
import java.util.stream.Collectors;

// 初始化客户端配置
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
// 替换为自己的服务端地址
config.setServerURL(new URL("http://xxx.xxx.xxx.xxx:端口/服务路径"));
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);

// 转换学生列表为服务端可接收的参数格式
List<Object[]> params = studentList.stream()
        .map(Student::toRpcParam)
        .collect(Collectors.toList());
// 调用服务端方法,第一个参数替换为服务端暴露的接收方法名
Object result = client.execute("服务端方法名", new Object[]{params});
System.out.println("服务端返回结果:" + result);

3. Postman验证接口

按以下步骤操作即可验证服务端功能:

  • 请求方式选择POST,地址栏填写XML-RPC服务端访问地址
  • Headers页签添加键值对:Content-Type: text/xml
  • Body页签选择raw,格式选择XML,填入符合规范的请求体,示例如下:
<?xml version="1.0"?>
<methodCall>
  <methodName>服务端定义的接收方法名</methodName>
  <params>
    <param>
      <value>
        <array>
          <data>
            <!-- 可自行添加多个学生信息 -->
            <value>
              <array>
                <data>
                  <value><string>张三</string></value>
                  <value><double>90.5</double></value>
                </data>
              </array>
            </value>
          </data>
        </array>
      </value>
    </param>
  </params>
</methodCall>
  • 点击发送,查看返回的XML格式响应,判断接口是否正常运行

内容的提问来源于stack exchange,提问作者erik tapia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:06:02