ssm(java)调用thinkphp接口

这篇博客展示了如何在Java中新建一个类并重载方法以调用ThinkPHP的登录接口。通过设置URL和传递参数,实现了Java与ThinkPHP之间的通信。在PHP端,博主使用测试数据进行了接口响应的演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
     * 请求PHP接口 //请求方法
     * @param pathUrl 接口地址
     * @param params 请求参数
     * @return httpUrlConnection
     */
    public String httpUrlConnection(String pathUrl, String userName,String userPwd) {
        try {
            // 建立连接
            
            URL url = new URL(pathUrl);
            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();

            // //设置连接属性
            httpConn.setDoOutput(true);// 使用 URL 连接进行输出
            httpConn.setDoInput(true);// 使用 URL 连接进行输入
            httpConn.setUseCaches(false);// 忽略缓存
            httpConn.setRequestMethod("POST");// 设置URL请求方法
            String requestString = "userName=" + userName;
            String requestString1 = "userPwd=" + userPwd;

            // 设置请求属性
            // 获得数据字节数据,请求数据流的编码,必须和下面服务器端处理请求流的编码一致
            byte[] requestStringBytes = requestString.getBytes("UTF-8");
                   requestStringBytes = requestString1.getBytes("UTF-8");
            httpConn.setRequestProperty("Content-length", "" + requestStringBytes.length);
            httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接
            httpConn.setRequestProperty("Charset", "UTF-8");
            //
            // 建立输出流,并写入数据
            OutputStream outputStream = (OutputStream) httpConn.getOutputStream();
            outputStream.write(requestStringBytes);
            outputStream.close();
            // 获得响应状态
            int responseCode = httpConn.getResponseCode();

            // HttpURLConnection. == responseCode
            if (httpConn.HTTP_OK == responseCode) {// 连接成功
                // 当正确响应时处理数据
                StringBuffer sb = new StringBuffer();
                String readLine;
                BufferedReader responseReader;
                // 处理响应流,必须与服务器响应流输出的编码一致
                responseReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), "UTF-8"));
                while ((readLine = responseReader.readLine()) != null) {
                    sb.append(readLine).append("\n");
                }
                responseReader.close();
                
                return sb.toString();
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return "";
    }

    
    @Override
    public String httpUrlConnection(String pathUrl, String userName, String userPwd, Date lastTime) {
        try {
            // 建立连接
            
            URL url = new URL(pathUrl);
            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();

            // //设置连接属性
            httpConn.setDoOutput(true);// 使用 URL 连接进行输出
            httpConn.setDoInput(true);// 使用 URL 连接进行输入
            httpConn.setUseCaches(false);// 忽略缓存
            httpConn.setRequestMethod("POST");// 设置URL请求方法
            String requestString = "userName=" + userName;
            String requestString2 = "userpwd=" + userPwd;
            String requestString3 ="lastTime="+lastTime;

            // 设置请求属性
            // 获得数据字节数据,请求数据流的编码,必须和下面服务器端处理请求流的编码一致
            byte[] requestStringBytes = requestString.getBytes("UTF-8");
                   requestStringBytes = requestString2.getBytes("UTF-8");
                   requestStringBytes = requestString3.getBytes("UTF-8");
            httpConn.setRequestProperty("Content-length", "" + requestStringBytes.length);
            httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接
            httpConn.setRequestProperty("Charset", "UTF-8");
            //
            // 建立输出流,并写入数据
            OutputStream outputStream = (OutputStream) httpConn.getOutputStream();
            outputStream.write(requestStringBytes);
            outputStream.close();
            // 获得响应状态
            int responseCode = httpConn.getResponseCode();

            // HttpURLConnection. == responseCode
            if (httpConn.HTTP_OK == responseCode) {// 连接成功
                // 当正确响应时处理数据
                StringBuffer sb = new StringBuffer();
                String readLine;
                BufferedReader responseReader;
                // 处理响应流,必须与服务器响应流输出的编码一致
                responseReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), "UTF-8"));
                while ((readLine = responseReader.readLine()) != null) {
                    sb.append(readLine).append("\n");
                }
                responseReader.close();
                System.out.println(sb.toString());
                return sb.toString();
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return "";
    }

新建一个类调用上面写的方法(重载)


                String pathUrl = "http://192.168.xxx.xxx:80/tp32/index.php/Home/Manager/login";
                String php = userService.httpUrlConnection(pathUrl, userName,userPwd);
                System.out.println(php);

 

PHP中 我用一个测试数据来展现一下

 

public function test1()
{
    $users = D("user");
    $data = $users->select();

    $data_all = array(
        'flag' => 1,
        'msg' => '成功'
    );
    $data_all['data']=$data;
   
    $this->ajaxReturn(json_encode($data_all));
   
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值