整理下异步post表单的方法
被调用的程序,http://127.0.0.1/form.php
<?php
if(!empty($_POST)) {
print_r($_POST);
} else {
echo 'NO POST';
}
1.curl方法
<?php
$url = 'http://127.0.0.1/form.php';
$post = 'key1=value1&key2=value2';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$data = curl_exec($ch);
curl_close($ch);
print_r($data);
2.sock方法
<?php
$encoded = 'key1=value1&key2=value2';
$url = 'http://127.0.0.1/form.php';
$url = parse_url($url);
if (!$url)
return "couldn\'t parse url";
if (!isset($url['port']))
$url['port'] = "";
if (!isset($url['query']))
$url['query'] = "";
$port = $url['port'] ? $url['port'] : 80;
$fp = fsockopen($url['host'], $port, $errno, $errstr);
if (!$fp)
return "Failed to open socket to $url[host] $port ERROR: $errno - $errstr";
fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));
fputs($fp, "Host: ". $url['host'] ."\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($encoded) . "\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, $encoded . "\n");
$results = "";
$inheader = 1;
while(!feof($fp)) {
$line = fgets($fp,1024);
if ($inheader && ($line == "\n" || $line == "\r\n")) {
$inheader = 0;
} elseif(!$inheader) {
$results .= $line;
}
}
fclose($fp);
print_r($results);
3.javascript的ajax,会把url暴露在客户端
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<script>
$(function(){
$.post('http://127.0.0.1/form.php',
{'key1':'value1','key2':'value2'},
function(data){}
);
});
</script>
分享到:
相关推荐
总结起来,"php-curl+ajax+json数据传输2.0版本"是利用PHP-cURL解决AJAX跨域请求的一种解决方案,它结合了AJAX的异步特性、JSON的数据交换优势以及cURL的服务器端请求处理能力。这个组合可以实现高效、安全的数据...
基于libcurl官网demo,实现http post 并发 异步 demo。以文件为介质保存post参数,执行后,将失败链接的参数回存此文件。HandleCurlMulti 以轮询方式进行,可以设置每次的吞吐量。待优化的地方为文件存储,如果多...
1、使用的是curl库,数据采用http post方式表单递交 2、里面有完整的注释,比较规则的代码结构,适合学习交流 3、是控制台程序 4、我也是用到了curl但网上的资料大部分比较松散,我自己实现后分享给大家,相互学习,...
主要介绍了PHP基于curl模拟post提交json数据操作,结合实例形式分析了php使用curl实现post方式提交json数据相关操作步骤与注意事项,代码简单实用,需要的朋友可以参考下
PHP 基于 curl 模拟 post 提交 json 数据示例 本文主要介绍了 PHP 基于 curl 模拟 post 提交 json 数据操作,通过实例形式分析了 PHP 使用 curl 实现 post 方式提交 json 数据相关操作步骤与留意事项。下面是文章的...
在Qt工程中,使用curl库发送POST请求并处理JSON数据是一项常见的任务,特别是在与Web服务交互时。这里我们将深入探讨如何实现这一功能。 首先,`curl`是一个强大的命令行工具和库,用于传输数据,支持多种协议,...
curl SSL post访问curl SSL post访问
本项目中,我们关注的是GET和POST两种请求方式,以及它们的同步和异步实现。下面将详细介绍这两种请求方式以及同步与异步的区别。 1. **QT中的HTTP GET请求** GET请求是最常见的HTTP请求类型,用于从服务器获取资源...
除了大家熟知的通过Ajax实现异步,还有其他几种方法,下面将逐一介绍。 1. **利用cURL库** cURL是一个强大的传输协议接口,可以用于发送HTTP请求。通过设置`CURLOPT_TIMEOUT`选项为1秒,虽然客户端需要等待至少1秒...
qt工程中引入编译好的curl库,封装了一个类来执行post请求 可以直接拿来改造。 数据格式为json格式
POST请求常用于向服务器发送数据。在`curlpp`中,你可以设置POST字段并启动请求: ```cpp void performPostRequest(const std::string& url, const std::string& data) { curlpp::Easy request; request.setOpt...
// 设置POST数据,此处仅为示例,应由监控AJAX请求后填写完整参数 curl_setopt($ch3,CURLOPT_URL,$url3); // 设置请求URL curl_setopt($ch3,CURLOPT_POST,1); // 发起POST请求 curl_setopt($ch3,CURLOPT_POSTFIELDS...
C++ 实现 HTTP HTTPS POST GET(包含curl版本和winhttp两种实现)。 玩过抓包,网络协议分析的朋友肯定都知道http https post get,web端和用户的交互主要是通过post get完成的。 我这里有两种实现: 1:libcurl实现的...
本篇将详细介绍如何利用C++结合Curl库实现GET下载ZIP文件、POST上传ZIP文件以及普通POST请求以获取JSON数据。 首先,我们要理解GET和POST在网络请求中的基本概念。GET是HTTP协议中最常见的方法,用于请求服务器发送...
在C++编程中,发送HTTPS POST请求并处理返回的数据是一个常见的任务,特别是在API交互或网络服务的集成中。本文将详细讲解如何使用libcurl库来实现这个功能,并涉及如何处理appKey与appSecret的安全传输。 libcurl...
通过`curl_easy_setopt`设置请求的URL、POST方式以及POST数据。为了获取服务器响应,我们可以设置一个回调函数`write_data`,该函数会在接收到数据时被调用。最后,执行请求并检查返回的错误代码。 需要注意的是,...
curl库提供了丰富的API,例如`curl_easy_init`初始化会话,`curl_easy_setopt`设置选项(如URL、请求方法、POST数据),以及`curl_easy_perform`执行请求。 2. **WinHTTP API**: WinHTTP是Windows操作系统提供的...
在Cocos2d-x游戏引擎中,Curl库是一个强大的工具,用于实现网络通信,特别是进行异步文件下载。在3.10版本中,Cocos2d-x提供了对Curl的支持,允许开发者在游戏运行时后台下载资源,提高用户体验,并且支持断点续传...
玩过抓包,网络协议分析的朋友肯定都知道http https post get,web端和用户的交互主要是通过post get完成的。 我这里有两种实现: 1:libcurl实现的CHttpClient类,该类实现了Htpp和Https的get post方法。 2:...
在这个场景中,我们将深入探讨如何利用libcurl在C++中上传文件并发送POST表单数据。 首先,`con_test.cpp`是主要的源代码文件,它包含了使用libcurl进行文件上传和POST操作的具体实现。`StdAfx.cpp`和`StdAfx.h`是...