php获取get/post请求的数据

发送请求:

这里使用的是java发送的请求,发送post请求使用了apache的httpclient开源项目。

private static String HTTPHead = "http://localhost/stu.php";

	/**
	 * 发送get请求
	 * 
	 * @param name
	 * @param age
	 */
	public void sendHttpGetRequest(String name, int age) {
		URL url = null;
		try {
			url = new URL(HTTPHead + "name=" + name + "&age=" + age);
			URLConnection conn = url.openConnection();
			InputStreamReader reader = new InputStreamReader(
					conn.getInputStream());
			BufferedReader breader = new BufferedReader(reader);
			StringBuffer buf = new StringBuffer();
			String line = null;
			while (null != (line = breader.readLine())) {
				buf.append(line);
			}
			reader.close();
			System.out.println(buf.toString());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 发送post
	 * 
	 * @param name
	 * @param age
	 */
	public void sendHttpPostRequst(String name, int age) {
		BufferedReader in = null;
		try {
			// 定义HttpClient
			HttpClient client = new DefaultHttpClient();
			// 实例化HTTP方法
			HttpPost request = new HttpPost(HTTPHead);
			// 创建名/值组列表
			List<NameValuePair> parameters = new ArrayList<NameValuePair>();
			parameters.add(new BasicNameValuePair("name", name));
			parameters.add(new BasicNameValuePair("age", age + ""));
			// 创建UrlEncodedFormEntity对象
			UrlEncodedFormEntity formEntiry = new UrlEncodedFormEntity(
					parameters);
			request.setEntity(formEntiry);
			// 执行请求
			HttpResponse response = client.execute(request);
			// 获取输入流
			in = new BufferedReader(new InputStreamReader(response.getEntity()
					.getContent()));
			StringBuffer sb = new StringBuffer("");
			String line = "";
			while ((line = in.readLine()) != null) {
				sb.append(line);
			}
			in.close();
			String result = sb.toString();
			System.out.println(result);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (in != null) {
				try {
					in.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
	}

接受请求:

php接受到http请求,然后解析获取请求参数,并返回给客户端。

<?php
//连接服务器
$conn=mysql_connect('localhost','root','');
//状态
if(!$conn){
echo "connection failed";
exit;
}

//选择数据库
$sql='use student';
//conn通道进行
$rs=mysql_query($sql,$conn);
//设置字符集
$sql='set names utf8';
mysql_query($sql,$conn);

//获取GET传递的数据:http://localhost/stu.php?name="fujun"&age=20
//$s_name=isset($_GET['name'])?$_GET['name']:'';
//$s_age=isset($_GET['age'])?$_GET['age']:0;

//获取POST传递的数据:http://localhost/stu.php 
//"name=putao&age=100"
//file_get_contents:将整个文件读入一个字符串
//php://input:是个可以访问请求的原始数据的只读流。POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的 php.ini 指令
$str = file_get_contents("php://input");
$arr=array();
//parse_str:将字符串解析成多个变量
parse_str($str,$arr);
echo 'name:'.$arr['name']."<br/>".'age:'.$arr['age'];
?>

post的效果:



javaClient

注意:

1.倒入apache的httpclient项目jar包,不止一个,遇到类没找到的提示的时候,就该看看缺少啥包。


使用这个开源项目的原因是因为这个使用起来很方便,如果使用java.net包也行,就是麻烦一点。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值