天天看點

ssm(java)調用thinkphp接口

/*
     * 請求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));
   
}