整理下异步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 以轮询方式进行,可以设置每次的吞吐量。待优化的地方为文件存储,如果多...
除了大家熟知的通过Ajax实现异步,还有其他几种方法,下面将逐一介绍。 1. **利用cURL库** cURL是一个强大的传输协议接口,可以用于发送HTTP请求。通过设置`CURLOPT_TIMEOUT`选项为1秒,虽然客户端需要等待至少1秒...
1、使用的是curl库,数据采用http post方式表单递交 2、里面有完整的注释,比较规则的代码结构,适合学习交流 3、是控制台程序 4、我也是用到了curl但网上的资料大部分比较松散,我自己实现后分享给大家,相互学习,...
主要介绍了PHP基于curl模拟post提交json数据操作,结合实例形式分析了php使用curl实现post方式提交json数据相关操作步骤与注意事项,代码简单实用,需要的朋友可以参考下
在Qt工程中,使用curl库发送POST请求并处理JSON数据是一项常见的任务,特别是在与Web服务交互时。这里我们将深入探讨如何实现这一功能。 首先,`curl`是一个强大的命令行工具和库,用于传输数据,支持多种协议,...
PHP 基于 curl 模拟 post 提交 json 数据示例 本文主要介绍了 PHP 基于 curl 模拟 post 提交 json 数据操作,通过实例形式分析了 PHP 使用 curl 实现 post 方式提交 json 数据相关操作步骤与留意事项。下面是文章的...
curl SSL post访问curl SSL post访问
本项目中,我们关注的是GET和POST两种请求方式,以及它们的同步和异步实现。下面将详细介绍这两种请求方式以及同步与异步的区别。 1. **QT中的HTTP GET请求** GET请求是最常见的HTTP请求类型,用于从服务器获取资源...
qt工程中引入编译好的curl库,封装了一个类来执行post请求 可以直接拿来改造。 数据格式为json格式
POST请求常用于向服务器发送数据。在`curlpp`中,你可以设置POST字段并启动请求: ```cpp void performPostRequest(const std::string& url, const std::string& data) { curlpp::Easy request; request.setOpt...
在本教程中,我们将探讨如何利用 `curl` 实现 SFTP(Secure File Transfer Protocol)上传以及向 URL 发送 POST 和 GET 请求,并处理 JSON 数据。 ### 1. 使用 `curl` 进行 SFTP 上传 SFTP 是基于 SSH 的文件传输...
// 设置POST数据,此处仅为示例,应由监控AJAX请求后填写完整参数 curl_setopt($ch3,CURLOPT_URL,$url3); // 设置请求URL curl_setopt($ch3,CURLOPT_POST,1); // 发起POST请求 curl_setopt($ch3,CURLOPT_POSTFIELDS...
相比GET请求,POST请求可以携带更多的数据,并且对数据的长度没有严格限制。 libcurl库提供了丰富的API,使得开发者可以方便地构建网络请求。在C++中,我们可以使用libcurl的`curl_easy_init`、`curl_easy_setopt`...
在这个场景中,我们将深入探讨如何利用libcurl在C++中上传文件并发送POST表单数据。 首先,`con_test.cpp`是主要的源代码文件,它包含了使用libcurl进行文件上传和POST操作的具体实现。`StdAfx.cpp`和`StdAfx.h`是...
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协议中最常见的方法,用于请求服务器发送...
在本文中,我们将深入探讨如何在Qt工程中利用curl库进行网络请求,这是一个最小化的示例,可以帮助开发者了解如何将curl集成到Qt项目中。首先,让我们了解一下curl库和Qt框架的基本概念。 **curl库介绍** curl是一...
通过`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操作系统提供的...