因为自己时常用到

所以还是发布一下吧

/**

* 发送post请求

* @param string $url 请求地址

* @param array $post_data post键值对数据

* @return string

*/

function send_post($url, $post_data) {

$postdata = http_build_query($post_data);

$options = array(

'http' => array(

'method' => 'POST',

'header' => 'Content-type:application/x-www-form-urlencoded',

'content' => $postdata,

'timeout' => 15 * 60 // 超时时间(单位:s)

)

);

$context = stream_context_create($options);

$result = file_get_contents($url, false, $context);

return $result;

}

//使用方法

$post_data = array(

'username' => 'stclair2201',

'password' => 'handan'

);

send_post('http://www.qianyunlai.com', $post_data);

<?php

/**

* Socket版本

* 使用方法:

* $post_string = "app=socket&version=beta";

* request_by_socket('chajia8.com', '/restServer.php', $post_string);

*/

function request_by_socket($remote_server,$remote_path,$post_string,$port = 80,$timeout = 30) {

$socket = fsockopen($remote_server, $port, $errno, $errstr, $timeout);

if (!$socket) die("$errstr($errno)");

fwrite($socket, "POST $remote_path HTTP/1.0");

fwrite($socket, "User-Agent: Socket Example");

fwrite($socket, "HOST: $remote_server");

fwrite($socket, "Content-type: application/x-www-form-urlencoded");

fwrite($socket, "Content-length: " . (strlen($post_string) + 8) . "");

fwrite($socket, "Accept:*/*");

fwrite($socket, "");

fwrite($socket, "mypost=$post_string");

fwrite($socket, "");

$header = "";

while ($str = trim(fgets($socket, 4096))) {

$header .= $str;

}

$data = "";

while (!feof($socket)) {

$data .= fgets($socket, 4096);

}

return $data;

}

?>

<?php

/**

* Curl版本

* 使用方法:

* $post_string = "app=request&version=beta";

* request_by_curl('http://www.qianyunlai.com/restServer.php', $post_string);

*/

function request_by_curl($remote_server, $post_string) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $remote_server);

curl_setopt($ch, CURLOPT_POSTFIELDS, 'mypost=' . $post_string);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_USERAGENT, "qianyunlai.com's CURL Example beta");

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

?>

Php发送post请求方法的更多相关文章

  1. 微信开发所需要的的方法(签名认证、数组转字符串方法、将xml字符串转换为数组、发送xml请求方法)

    //将xml字符串转换为数组 public function xmlToArray($xml){ $array_data = json_decode(json_encode(simplexml_loa ...

  2. 发送HTTP请求方法- 留着自用

    /** * 发送HTTP请求方法,目前只支持CURL发送请求 * @param string $url 请求URL * @param array $data POST的数据,GET请求时该参数无效 * ...

  3. php发送http请求方法实例及详解

    http请求有get,post. php发送http请求有三种方式[我所知道的有三种,有其他的告诉我]. file_get_contents();详情见:http://www.whosmall.com ...

  4. php模拟HTTP协议发送post请求方法

    今天用到php模拟http发送post请求记录 代码如下: <?php $url = 'xxxx.com'; $data = 'a=one&b=two'; $data = urlenco ...

  5. WebClient模拟发送Post请求

    WebClient模拟发送Post请求方法: /// <summary> /// 模拟post请求 /// </summary> /// <param name=&quo ...

  6. 『居善地』接口测试 — 5、使用Requests库发送POST请求

    目录 1.请求正文是application/x-www-form-urlencoded 2.请求正文是raw (1)json格式文本(application/json) (2)xml格式文本(text ...

  7. 【JAVA】通过HttpClient发送HTTP请求的方法

    HttpClient介绍 HttpClient 不是一个浏览器.它是一个客户端的 HTTP 通信实现库.HttpClient的目标是发 送和接收HTTP 报文.HttpClient不会去缓存内容,执行 ...

  8. Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  9. Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

随机推荐

  1. Linux skbuff注释笔记

    SKB结构定义   /usr/src/linux/include/linux/skbuff.h sk_buff_head: struct sk_buff_head { //SKB的头结点 /* The ...

  2. CALayer及其子类

    前言:这个系列要更新Core Animation的内容,但是CALayer是Core Animation的基础. 一 CALayer是什么? 摘自官网的一句话-Layers Provide the B ...

  3. 《码出高效 Java开发手册》第三章 代码风格

    第3章 代码风格 3.1 命名 符合语言特性 体现代码元素特征: Abstract xxx. Basexxxx.xxException.xxxTest等; 包名统一使用小写, 完整单词+点分隔符; 枚 ...

  4. mongodb常用的查询命令例子

    取 time 字段的最大值: db.getCollection('CallLog').find().sort({"time":-1}).limit(1) 最小值只需要把 –1 改成 ...

  5. Java - HashMap值大于128问题

    class Solution { public boolean wordPattern(String pattern, String str) { HashMap<Character,Integ ...

  6. Linux学习1-创建虚拟机

    VMware安装非常简单,使用默认安装就可以,VMware尽量使用低版本的软件,这样可以降低系统的消耗 1.新建一个虚拟机 2.直接选择默认的典型安装         3.选择安装来源:此处选择最后一 ...

  7. whistle替代Fiddler调试远程服务器代码使用教程

    前沿 之前在window下开发的同学大部分都是使用Fiddler代理工具做远程调试,自从换了Mac后也想找个代替工具调试,查询了下大概都比较推荐两款:Charles 和 Whistle .不过Char ...

  8. Fatal error: Call to undefined function curl_init()解决办法

    问题描述: 在Windows SERVER 2012RC 64 bit OS, php 5.6.3的环境下,搭建好了php运行环境.但是在调用 curl_init() 方法时却报错了. 检查了一下,p ...

  9. 当碰到需要调试打包后的js

    在react中经常开发碰到不能热更中进行调试的,如IE之类的 这个时候我们就需要打包才能运行看到效果, 但是往往每次打包都需要很长的时间: 这个时候我们就可以直接找到打包后的文件,直接在改文件中修改: ...

  10. react里 MD5加密

    https://www.f2td.com/2018/11/13/encrypt-the-user-password-with-md5/