php模拟POST请求的两种方法

转载 2015年07月08日 20:19:41

通过fsockopen函数

<?php
//模拟发送POST请求
$url = "http://localhost/Post/server.php";//要请求的服务器地址

//要请求的内容
$post_data['user']        =    "root";
$post_data['password']    =     "1988725";

//转换请求内容
foreach($post_data as $key => $value)
{
    $requestArray[] = $key.'='.urlencode($value);
}
$requestString    =    implode("&",$requestArray);

//url
$url_info    =    parse_url($url);

if(!isset($url_info['port']))
{
    $url_info['port']    =    80;
    //模拟http请求头
    $request    .=    "POST ".$url_info['path']." HTTP/1.1\n";
    $request    .=    "Host: ".$url_info['host']."\n";
    $request    .=    "Content-type: application/x-www-form-urlencoded\n";
     $request    .=    "Content-length: ".strlen($requestString)."\n";
    $request    .=    "Connection: close\n";
     $request    .=    "\n";
    $request    .=    $requestString."\n";
}

$fp = fsockopen($url_info["host"], $url_info["port"]);
fputs($fp, $request);//把HTTP头发送出去

$inheader = 1;
while(!feof($fp)) 
{
    //$result 是提交后返回的数据
    $result .= fgets($fp, 1024);
}
echo $result;
fclose($fp);


通过 crul


<?php
//要请求的内容
$post_data['user']        =    "root";
//$post_data['password']    =     "1988725"; 
$post_data['file']        =    '@C:\Documents and Settings\chenzhi\My Documents\My Pictures\1286606098_38.jpg';

///$post_data['file']    =     '@'.$_FILES['image']['tmp_name'];
$ch        =    curl_init();
$curl_url    =    "http://172.16.27.51/server.php";
curl_setopt($ch,CURLOPT_URL,$curl_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接输出,返回到变量
//$curl_result = curl_exec($ch);
//echo $curl_result;

curl_exec($ch);

注意,通过curl传送图片时,一定要记住要加@号,且不能用双引号,只能用单引号

相关文章推荐

利用Telnet来模拟Http请求 有GET和POST两种

我们学了半天大致了解了下HTTP请求的流程,那我就利用Telnet来模拟Http请求---访问百度。       1、打开"运行"->cmd进入命令环境;       2...

php模拟post提交(方法一)

php模拟post提交(方法一) 通达OA专业二次开发

PHP模拟POST提交的2种方法 curl,fsockopen,HttpClient

PHP模拟POST提交的2种方法   2010-05-01 23:31:22|  分类: PHP |字号 订阅 1.通过curl函数 $post_data = a...
  • samxx8
  • samxx8
  • 2011-10-13 09:49
  • 3126

php模拟get和post的几种方法

方法一:$re = file_get_contents($url); print_r($re); 方法二:$ch = curl_init("http://www.jb51.net/") ; curl...

php模拟post提交(方法二)

php模拟post提交 QQ:874689017 通达OA专业二开

php 模拟POST提交的2种方法

1.通过curl函数 $post_data = array(); $post_data['clientname'] = "test08"; $post_data['clientpasswd'] ...

PHP中模拟post提交数据的方法

本文转自http://www.oschina.net/code/snippet_127872_6370 PHP POST数据的三种方法 php有三种方法可以post数据,分别为Curl、so...

php 模拟POST提交的三种方法[实例代码]

分享使用php模拟POST提交的三种方法,可以做的事很多:提交表单,发布留言。稍稍改进一下可以当做 php留言群发的小工具使用,只公布两种方法,其它的自己加工吧。 关php于执行效率的问题,可以改进...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)