网络课程刚刚讲到物理层,一个网络白痴因为接到一个项目不得不在两个月内搞定nginx,php,mysql。说实话,蛮困难的。自己真的是个小白。怎么个白法呢?在印象中,一直以为,所谓的服务器,就是在一个超大的屋子里面,摆上各种各样超大的机器,有好多人对服务器进行维护。
经过几天的折磨,终于搞懂了什么是服务器,什么叫客户端。装上了自己的ubuntu,能敲几行简单的命令。搭建起了自己的lnmp(现在还不知到mysql怎么用。。)。然后又经过了无数本书和网络教程的折磨,终于明白了网络上还有协议这回事。。而且,java里面竟然还包含各种直接使用协议的类。简单的几行代码竟然就能让java与php进行通信。真是不可思议.
废话说完了。说一下进展。
不同的语言,都有对http,url,https等等一系列协议的实现,其中最常用的两个函数就是 GET & POST。而我们做手机开发所用的java里面就有对http通信进行实现的类 Httpurlconnection,URL类。通过这两个类就可以实现 http 链接,然后再通过 POST || GET函数就可以传送数据啦~。
服务器端采用的lnmp结构 即:linux(ubuntu)+nginx+php-fpm+mysql 顺便说一下,nginx不能像appache那样直接通过一个mod模块对php文件进行解析 要通过fast-cgi后台进行解析。
下面代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
public class GetTest {
public static void main(String [] args) throws IOException
{
String urlString = "http://222.31.79.167:8888/test/testGet.php";
URL url;
String line;
String result = "";
//int age = 19;
String name = "li";
url = new URL(urlString);
HttpURLConnection httpUrlconnection = (HttpURLConnection) url.openConnection();
httpUrlconnection.setRequestMethod("POST");
httpUrlconnection.setDoOutput(true);
httpUrlconnection.setDoInput(true);
httpUrlconnection.connect();
PrintWriter out = new PrintWriter(httpUrlconnection.getOutputStream());
out.write(name);
out.flush();
BufferedReader in = new BufferedReader(new InputStreamReader(httpUrlconnection.getInputStream()));
while((line = in.readLine()) != null)
{
result += "\n"+line;
}
System.out.print(result);
}
}
服务器端 php代码:
<?php
$name = $_POST["name"];
$age = $_POST["age"];
echo "welcome ".$name;
echo "age is :".$age;
if($age == 19)
{
echo "hello";
}
else
{
echo "aiaiaiaiaiai";
}
?>