这里有新鲜出炉的Java并发编程示例,程序狗速度看过来!
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
下面小编就为大家带来一篇java读取PHP接口数据的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
和安卓是一个道理,读取json数据
PHP文件:
- <?php
- class Test{
- //日志路径
- const LOG_PATH="E:\phpServer\Apache\logs\\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("\r\n", "", $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 != "\n"){
- 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文件:
- 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 {
- URL url = new URL("http://localhost/test.php?action=showApacheLogs");
- 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接口数据的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持PHPERZ。
来源: http://www.phperz.com/article/17/1120/360253.html