fsocket发送post实现异步请求

 1 function triggerRequest($url, $post_data = array(), $cookie = array()){
 2           //可以通过POST或者GET传递一些参数给要触发的脚本
 3         $url_array = parse_url($url); //获取URL信息,以便平凑HTTP HEADER
 4         $port = isset($url_array[‘port‘])? $url_array[‘port‘] : 80;
 5
 6         $fp = fsockopen($url_array[‘host‘], $port, $errno, $errstr, 30);
 7         if (!$fp){
 8                 return FALSE;
 9         }
10
11         $getPath = $url_array[‘path‘];
12         isset($url_array[‘query‘]) && $getPath.= "?". $url_array[‘query‘];
13         $method = empty($post_data) ? "GET":"POST";
14
15
16         $header = $method . " " . $getPath;
17         $header .= " HTTP/1.1\r\n";
18         $header .= "Host: ". $url_array[‘host‘] . "\r\n"; //HTTP 1.1 Host域不能省略
19
20
21         if(!empty($post_data)){
22                 $_post = http_build_query($post_data);
23
24                 $header   .= "Content-Type: application/x-www-form-urlencoded\r\n";//POST数据
25                 $header   .= "Content-Length: ". strlen($_post) ." \r\n";//POST数据的长度
26                 $header      .= "Connection:Close\r\n\r\n";
27
28                 $header .= $_post."\r\n\r\n "; //传递POST数据
29         }
30
31
32         fwrite($fp, $header);
33         //echo fread($fp, 1024); //我们不关心服务器返回
34         fclose($fp);
35         return true;
36 }
时间: 2024-11-07 12:49:59

fsocket发送post实现异步请求的相关文章

关于ajax异步请求的一个细节问题

首先描述一下问题场景:我们正在做一个汽车出租项目,使用maven+ssm+easyui来完成,这个问题是在做汽车办理出租业务的时候出现的. 问题描述:在使用ajax发送异步请求时,遇到一个问题,就是在回调函数中接受到了异步响应的数据,但是在前端页面中的表单中却不回显该数据. 下面请看问题代码: 1 /* 办理出租业务 */ 2 function rentCars(value){ 3 /* 获取选中的行 */ 4 var row = $("#dgCarRents").datagrid(&

AJAX的来龙去脉(由来)-如果被封装出来的--ajax发送异步请求(四步操作)

<黑马程序员_超全面的JavaWeb视频教程vedio\JavaWeb视频教程_day23_ajax> \JavaWeb视频教程_day23_ajax\day23ajax_avi\14.打包ajax生成小工具.avi;  有介绍: 个人理解:就是封装了 XMLHttpRequest 的请求方法:演变而成我们常用的 ajax: =====原始的请求方式: ajax发送异步请求(四步操作) 1. 第一步(得到XMLHttpRequest) * ajax其实只需要学习一个对象:XMLHttpRequ

iOS总结:ASIHttpRequest类库发送请求(同步请求和异步请求)

1.发送异步请求 1)在.h中导入头文件 #import "ASIHTTPRequest.h" 2)设置代理 ASIHTTPRequestDelegate 3)URL —-> 发请求 —> 设置代理 —> 开始异步请求 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [

ASIHTTPRequest框架使用(2)--发送异步请求

同步请求一般只是用在某个子线程中使用,而不在主线程中使用.异步请求的用户体验要比同步请求好,因此一般情况下异步请求用的多. ASIHTTPRequest和ASIFormDataRequest两个请求类都可以发送异步请求.ASIFormDataRequest继承了ASIHTTPRequest异步请求方法,所以重点介绍ASIHTTPRequest的异步请求. 1.借助Delegate处理请求 - (void)startRequest { NSString *strUrl = [[NSString a

使用Ajax发送异步请求的步骤

1.获取Ajax对象:获取XMLHttpRequest对象实例 function getXhr(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest();//非IE浏览器 }else{ xhr = new ActiveXObject('Microsoft.XMLHttp');//IE浏览器 } return xhr; } 2.设置回调函数:为Ajax对象的readystatechange事件设定响应函数 xh

Vue--axios:vue中的ajax异步请求(发送和请求数据)

一.使用axios发送get请求 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv=&q

Vue--axios:vue中的ajax异步请求(发送和请求数据)、vue-resource异步请求和跨域

跨域原理: 一.使用axios发送get请求 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-eq

使用AJAX技术发送异步请求,HTTP服务端推送

使用AJAX技术发送异步请求 什么是AJAX AJAX指一步Javascript和XML(Asynchronous JavaScript And XML),它是一些列技术的组合,简单来说AJAX基于XMLHttpRequest让我们在不重载页面的情况下和服务器进行数据交换. 加上JavaScript和DOM(Document Object Model,文档对象模型),我们就可以在接收到响应数据后局部更新页面.XML指的是数据的交互模式,可以是纯文本(Plain Text).HTML或JSON.

.Net core webapi使用httpClient发送异步请求遇到TaskCanceledException: A task was canceled

前言:本人最近较多使用.net core的项目,最近在使用httpClient发送请求的时候,遇到服务器处理时间较长时,就老是会报异常:TaskCanceledException: A task was canceled.   我的使用异步请求的方法也较为老套,使用的Task a=()=>{};   a.Wait();  来等待异步操作的结束,这种方式执行等待时,就常会出现上面的异常信息,在.net Core中httpClient添加配置超时时长也没用: services.AddHttpClie