php异步请求数据(转发请求到别处处理)

  • 代码:
    /*
    @desc:模拟get、post、json异步请求数据
    @param method 请求类型 get|post|json
    @param url 请求的url地址,如:群发邮件
    @param data 请求数据
    */
    function sock_send($method,$url,$data=array()){
    $url = ‘http://‘.$url;
    if(strtolower($method) == ‘get‘){
        $query = http_build_query($data);
        $info = parse_url($url);
        $fp = fsockopen($info["host"], 80, $errno, $errstr, 8);
        $head = "GET ".$info[‘path‘]."?".$info["query"].trim($query)." HTTP/1.0\r\n";
        $head .= "Host: ".$info[‘host‘]."\r\n";
        $head .= "Connection:close\r\n\r\n";
        $write = fputs($fp, $head);
        return $write;
    }elseif(strtolower($method) == ‘post‘){
        $query = http_build_query($data);
        $info = parse_url($url);
        $fp = fsockopen($info["host"], 80, $errno, $errstr, 8);
        $head = "POST ".$info[‘path‘]."?".$info["query"]." HTTP/1.0\r\n";
        $head .= "Host: ".$info[‘host‘]."\r\n";
        $head .= "Referer: http://".$info[‘host‘].$info[‘path‘]."\r\n";
        $head .= "Content-type: application/x-www-form-urlencoded\r\n";
        $head .= "Content-Length: ".strlen(trim($query))."\r\n";
        $head .= "Connection:close\r\n\r\n";
        $head .= trim($query);
        $write = fputs($fp, $head);
        return $write;
    }elseif(strtolower($method) == ‘json‘){
        $query = json_encode($data);
        $info = parse_url($url);
        $fp = fsockopen($info["host"], 80, $errno, $errstr, 8);
        $head = "POST ".$info[‘path‘]."?".$info["query"]." HTTP/1.0\r\n";
        $head .= "Host: ".$info[‘host‘]."\r\n";
        $head .= "Referer: http://".$info[‘host‘].$info[‘path‘]."\r\n";
        $head .= "Content-type: application/json\r\n";
        $head .= "Content-Length: ".strlen(trim($query))."\r\n";
        $head .= "Connection:close\r\n\r\n";
        $head .= trim($query);
        $write = fputs($fp, $head);
        return $write;
    }else{
        return false;
    }
    }
  • 测试:
    $ret = sock_send(
    ‘json‘,
    ‘192.168.8.81‘,
    array(
        ‘name‘=>‘lee‘
    )
    );
    if($ret){
    echo ‘发送成功‘;
    }
  • 输出:
    发送成功
  • 原文地址:http://blog.51cto.com/12173069/2123461

    时间: 2024-11-05 21:34:43

    php异步请求数据(转发请求到别处处理)的相关文章

    JSP:请求数据和请求本身的一些信息

    JSP:请求数据和请求本身的一些信息 jsp 隐式对象 赵振江 隐式对象 描述 编写一个JSP登录页面,可输入用户名和密码,提交请求到另一个JSP页面,该JSP页面获取请求的相关数据并显示出来.请求的相关数据包括用户输入的请求数据和请求本身的一些信息(比如请求使用的协议getProtocol() .请求的URI request.getServletPath() .请求方法request.getMethod() .远程地址request.getRemoteAddr()等). output.jsp

    网络请求数据 get请求方式   post请求 协议异步连接服务器 block异步连接服务器

    网络请求三部 创建一个请求(添加接口,对接口进行解码,) 设定请求方式(将接口转为NSURL,设置请求[请求地址, 缓存策略, 超时时间],设置请求方式) 连接服务器([同步连接,异步连接]代理连接,block连接) #import "MainViewController.h" @interface MainViewController () @property (retain, nonatomic) IBOutlet UIImageView *ImageWiew; //get请求方法

    Java Web -- Servlet(13)HttpServletRequest详解(获取请求数据、请求分派、请求域)(2)

                                        HttpServletRequest ---------------------------------------------------------------- (4)请求分派 Servlet API中定义了一个RequestDispatcher接口,俗称请求分派器. 它有两个方法 forward(ServletRequest request,ServletResponse response) include(Serv

    JMeter特殊情况二:针对某些请求数据每次请求都是变化的情况

    概要:某些post请求,例如,登录的请求除了有我们再页面上需要输入的一些值(用户名.密码.是否记住密码等)之外,还有其他的参数,例如token等等,而且这些参数不固定,也就是说每一次post请求这些参数都不一样,那么针对这样的请求,我们就不能够直接给参数赋值,而需要动态获取参数的值,进而传递给post请求这个动态获取的值.? 1. 下面是一个csdn网站登录的审查元素:?其中username,password,_eventId是一般的参数,lt和execution是不固定的,每次请求值都不一样,

    Angular 请求数据

    Angular 请求数据 get post 以及 jsonp 请求数据 引入 HttpModule .JsonpModule 普通的 HTTP 调用并不需要用到 JsonpModule,不过稍后我们就会延演示对 JSONP 的支持,所以现在就加载它,免得再回来浪费时间. 引入模块 注意:JSONP 在4版本以后已经被弃用了... import { HttpClientJsonpModule, HttpClientModule } from '@angular/common/http'; 在 im

    请求的转发和重定向

    请求 request 简写 req 响应 response 简写 res 客户端 -> 发出请求request -> 服务器做出一定处理之后 -> 返回响应response -> 客户端 转发和重定向 转发和重定向也是我们前端需要了解的一个能力,知道什么时候使用转发,什么时候使用重定向就可以了 在发出一个请求或者说跳转到某一个页面的时候,并不能直接达到这个页面,我们需要做出一些拦截,拦截之后我们一般都会进行转发或者重定向,鉴权也是和转发重定向配合使用,例如 -> 某些页面需要

    第五阶段:JAVAEE 和项目开发(第三课:HTTP的请求头和请求方式)

    4. HTTP 协议之请求格式 请求格式的结构:请求行:请求方式.请求的地址和 HTTP 协议版本 请求头:消息报头,一般用来说明客户端要使用的一些附加信息 空行: 位于请求行和请求数据之间,空行是必须的. 请求数据:非必须. 注意: 一张网页的内容是极其丰富的,浏览器会遵循 HTTP 请求的格式将有效数据发送给服务器. 示例(get 请求方式): 示例(post 请求方式): 5. HTTP 协议之请求方式 根据 HTTP 标准,HTTP 请求可以使用多种请求方法. HTTP1.0 定义了三种

    jQuery基础(Ajax,load(),getJSON(),getScript(),post(),ajax(),同步/异步请求数据)

    1.使用load()方法异步请求数据 使用load()方法通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为: load(url,[data],[callback]) 参数url为加载服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功后,执行的回调函数. 2.使用getJSON()方法异步加载JSON格式数据 使用getJSON()方法可以通过Ajax异步请求的方式,获取服务器中的数据,并对获取的数据进行解析,显示在页面中,它的

    IOS - 网络(HTTP请求、同步请求、异步请求、JSON解析数据)

    1 // 2 // ViewController.m 3 // IOS_0129_HTTP请求 4 // 5 // Created by ma c on 16/1/29. 6 // Copyright © 2016年 博文科技. All rights reserved. 7 // 8 9 #import "ViewController.h" 10 #import "MBProgressHUD+MJ.h" 11 12 @interface ViewController