zoukankan      html  css  js  c++  java
  • java读取PHP接口数据的实现方法(四)

    PHP文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <?php
    class Test{
      //日志路径
      const LOG_PATH="E:phpServerApachelogs\error.log";
      //显示的行数
      const PAGES=50;
      public static function main(){
        header("content-type:text/html;charset=utf-8");
         
        if(!empty($_GET['action'])){
          if(!method_exists('Test',$_GET['action'])){
            echo "404";
          }else{
            self::$_GET['action']();
          }
          exit;
        }
      }
     
      public static function showApacheLogs(){
        $test=new Test();
        $result=$test->readLogs(self::LOG_PATH,self::PAGES);
        $json=array();
        for($i=0;$i<count($result);$i++){
          $line=$result[$i];
          //注意这里,如果处理会json解析失败
          $line=str_replace(" ", "", $line);
          $result[$i]=array("num"=>$i+1,"msg"=>urlencode($line));
        }
        $str=stripslashes(urldecode(json_encode($result)));
        echo $str;
      }
       
      /**
      * 读取日志
      */
      private function readLogs($filePath,$num=20){
        $fp = fopen($filePath,"r");
        $pos = -2;
        $eof = "";
        $head = false;  //当总行数小于Num时,判断是否到第一行了
        $lines = array();
        while($num>0){
          while($eof != " "){
            if(fseek($fp, $pos, SEEK_END)==0){  //fseek成功返回0,失败返回-1
              $eof = fgetc($fp);
              $pos--;
            }else{                //当到达第一行,行首时,设置$pos失败
              fseek($fp,0,SEEK_SET);
              $head = true;          //到达文件头部,开关打开
              break;
            }
              
          }
          array_unshift($lines,fgets($fp));
          if($head){ break; }         //这一句,只能放上一句后,因为到文件头后,把第一行读取出来再跳出整个循环
          $eof = "";
          $num--;
        }
        fclose($fp);
        return array_reverse($lines);
      }
    }
    Test::main();

    java文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
     
    import org.json.JSONArray;
    import org.json.JSONObject;
     
    public class ReadLogs {
      public static void main(String[] args) throws Exception {
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setConnectTimeout(10000);
        conn.setRequestMethod("GET");
        conn.setDoInput(true);
        conn.setDoOutput(true);
     
     
        // 输出返回结果
        InputStream input = conn.getInputStream();
        int resLen =0;
        byte[] res = new byte[1024];
        StringBuilder sb=new StringBuilder();
        while((resLen=input.read(res))!=-1){
          sb.append(new String(res, 0, resLen));
        }
         
        String jsonStr=sb.toString();
        //String转换成JSON
        JSONArray jsonArray=new JSONArray(jsonStr);
        for(int i=0;i<jsonArray.length();i++){
          JSONObject jsonObject=new JSONObject(jsonArray.getString(i));
          String msg=(String) jsonObject.get("msg");
          int num=(int) jsonObject.get("num");
          System.out.println(num+":"+msg);
        }
      }
    }

    以上这篇java读取PHP接口数据的实现方法就是小编分享给大家的全部内容

  • 相关阅读:
    关于jQuery的选择器
    解读position定位
    html5新增的功能。
    关于ajax的同步异步
    响应式布局由来和剖析
    jQuery的效果函数及如何运用
    jQuery的选择器
    position定位的解析与理解
    HTML5与CSS3中新增的属性详解
    对Ajax的解析
  • 原文地址:https://www.cnblogs.com/MaxElephant/p/8177576.html
Copyright © 2011-2022 走看看