php数据请求 php发送http请求
怎么用PHP发送HTTP请求
方法一:利用php的socket编程来直接给接口发送数据来模拟post的操作。
专注于为中小企业提供成都网站建设、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业简阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
建立两个文件post.php,getpost.php
post.php内容如下:
?php
$flag = 0;
$post = '';
$errno = '';
$errstr = '';
//要post的数据
$argv = array(
'var1'='abc',
'var2'='how are you , my friend??');
//构造要post的字符串
foreach ($argv as $key=$value) {
if ($flag!=0) {
$post .= "";
$flag = 1;
}
$post.= $key."="; $post.= urlencode($value);
$flag = 1;
}
$length = strlen($post);
//创建socket连接
$fp = fsockopen("localhost",81,$errno,$errstr,10) or exit($errstr."---".$errno);
//构造post请求的头
$header = "POST /flandy/getpost.php HTTP/1.1\r\n";
$header .= "Host:127.0.0.1\r\n";
$header .= "Referer:/flandy/post.php\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: ".$length."\r\n";
$header .= "Connection: Close\r\n\r\n";
//添加post的字符串
$header .= $post."\r\n";
//发送post的数据
fputs($fp,$header);
$inheader = 1;
while (!feof($fp)) {
$line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据
if ($inheader ($line == "\n" || $line == "\r\n")) {
$inheader = 0;
}
if ($inheader == 0) {
echo $line;
}
}
fclose($fp);
?
getpost.php的内容如下
?php
echo "this is the data posted";
echo "pre";
print_r($_REQUEST);
echo "/pre";
?
结果输出:
this is the data posted
Array
(
[var1] = abc
[var2] = how are you , my friend??
)
以上代码在本机81端口下已经通过测试。
方法二:
使用PHP的curl扩展或HttpClient.class.php类,这两个非常类似,下面简单的列出curl的实现代码。
两个文件post2.php和getpost2.php
post2.php的内容如下:
?php
$psecode = ’NDE005’;
$website = ’’;
$amt = 1;
$pwd = 123456;
$ch = curl_init();
$curl_url = "" . $website .
"pwd=" . $pwd . "action=checkpseid=" . $psecode .
"amt=" . $amt;
curl_setopt($ch, CURLOPT_URL, $curl_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接输出,返回到变量
$curl_result = curl_exec($ch);
$result = explode(',', $curl_result);
curl_close($ch);
print_r($result);
?
getpost2.php的内容如下:
?php
echo "returndatabr";
echo "pre";
print_r($_REQUEST);
echo "/pre";
?
结果输出:
Array ( [0] = returndataArray
(
[web] = ’wwwbaiducom’
[pwd] = 123456
[action] = check
[pseid] = ’NDE005’
[amt] = 1
)
)
PHP。POST请求的问题
最简单的话就是使用session保存,其次可以把数据存储在数据库里,或者文件里,然后在register.php里查询。
原生session使用方法
session_start();
//赋值
$_SESSION["Session名称"]=变量或字符串信息;
//使用
$_SESSION["Session名称"];
php频繁请求需要关闭数据库吗
需要关闭数据库的。如果是一个长连接的话,你的网站加入并发请求数很多,也就是说同时有很多人来访问你的网站,并且每个访问者都需要查询一次mysql数据库的话,会很快把你的系统资源消耗完了。短链接就没有这个问题,每次查询完就马上关闭了,这样不容易消耗过多的系统资源。但是长连接也有个好处就是,频繁查询的时候,可以节省了多次建立TCP连接的时间。
php请求第三方数据方法
方法有很多,其中有file_get_contents把数据读到一个字符串中,还有一个是curl方式,两种方式有所不同,查一下就知道区别了
PHP 拿到令牌之后如何再次请求接口数据,主要是库存数据
PHP可以使用函数:file_get_contents函数获取外部json数据接口的数据,得到这些数据以后php再转成数组或对象传给前台html页面显示即可。
分享文章:php数据请求 php发送http请求
分享路径:http://scyanting.com/article/doosiip.html