通过java脚本调用应用的接口

1.引言       

在日常程序的调用中,有些时候由于数据问题需要重新执行,又不方便通过页面再次提交数据,例如某些数据的每日跑批量,一但执行后,就不在执行了,但由于某些特殊原因需再次重新执行某日的任务。或者有些方法可能一共只用一次就不需要了,这两种情况下就可以通过java写个的简单的脚本实现调用后端的接口了。

2.例子

某个定时任务执行失败,需手动再次拉起该日的定时任务重跑。

1、首先要确定服务的IP和端口,然后确认应用接口的请求方式(HTTP、Socket等),最后就是拼接报文了,代码如下

package AAA.BBB;//包名必须是包括该文件的目录名

import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;

public class test {
    public static final String IP_ADDR = "172.0.0.1";//服务器地址
    public static final int PORT = 8081;//服务器端口号

    public static void main(String[] args) {
        System.out.println("客户端启动...");
        Socket socket = null;
        try {
            //创建一个流套接字并将其连接到指定主机上的指定端口号
            socket = new Socket(IP_ADDR, PORT);

	   //服务端是通过socket接受报文,
            //向服务器端发送数据
            DataOutputStream out = new DataOutputStream(socket.getOutputStream());

            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("HHmmss");
            String timeStr = sdf.format(date);

            String str="0134{\"HEAD\":{\"bizType\":\"00\",\"instId\":\"00\",\"msgSrcId\":\"TPAD\",\"txnNo\":\"00000001\",\"txnTime\":\""+timeStr+"\",\"version\":\"0001\"},\"svr_date\":\""+args[0]+"\"}";
            System.out.println(str);

            out.write(str.getBytes("GBK"));
            out.close();
        } catch (Exception e) {
            System.out.println("客户端异常:" + e.getMessage());
        } finally {
            if (socket != null) {
                try {
                    socket.close();
                } catch (IOException e) {
                    socket = null;
                    System.out.println("客户端 finally 异常:" + e.getMessage());
                }
            }
        }
    }

}

2、接下来将上面的java类放入对应AAA/BBB的目录下

 

3、通过命令进入到java类所属的目录,然后编译该java,生成class文件(通过其他方式编译该java类也可以)

javac -encoding utf-8 test.java

具体操作方式见下

 

4、最后退到java类的根目录(即/root/test下)执行下面命令,这样就可以通过java脚本调用具体的服务了

java AAA.BBB.test 20190313

具体如下

5、补存

再执行最后的java AAA.BBB.test 20190313命令中 20190313是test.java中main方法的参数String[] args的参数(即args[0]=20190312),若需要其他参数在20190313后空一格再写入该参数,同样输入第二个参数对应的为args[1 ]    可在执行main方法的args[1]取出该值

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值