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://azwzsj.com/article/doosiip.html