当前位置:首页 » 编程语言 » curlphppost

curlphppost

发布时间: 2022-12-08 17:55:04

php用curl的post方法传递json包的时候,接受方是怎么获取的呢

假设POST的数据为:{"data":"abc"}

POST参数为:data

同样以PHP为例,接受并处理请求的相关代码如下:

<?php

extract($_POST);//将数组中的key摊成变量,并导入key对应的值

if(!empty($data))
{
$data=json_decode($data);//json字符串解码成json数据
var_mp($data);//打印json数据

//输出结果

object(stdClass)[1]
public'data'=>string'abc'(length=3)
}

㈡ php,用curl写个post登陆并取回cookies的代码

要在文件中保存COOKIE的信息,你的curl_setopt($ch, CURLOPT_COOKIEJAR,$cookie_file);中的$cookie_file必须是要保存cookie信息的文件名,最最关键的一点,这个文件名是必须要带绝对路径,否则是不行的,如果文件带上绝对路径的话,会在文件中以Netscape格式保存所有的cookie信息。
还有一个需要说明的,COOKIE必须指定有效期,如果没有指定有效期的话,默认的浏览器关闭COOKIE就失效。这种COOKIE信息在内存中存放,不会写入硬盘的。
这两个方面你都需要考虑。用绝对路径,保存一个长效的COOKIE,肯定可以成功!

㈢ php,curl模拟post请求,获取不到数据

获取不到数据,通过别的方式检查下服务器是否有数据返回。比如先用get测试。

㈣ php curl post获取网页得内容post得传入啥值

url 获取网页及post数据 使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓 取的网页,然后就可以以程序的方式得到你想要的

㈤ php Curl的get和post方法

get方法

function http_get($url)

{

    $oCurl = curl_init();

    if (stripos($url, "https://") !== FALSE) {

        curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);

        curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);

        //curl_setopt($oCurl, CURLOPT_SSLVERSION, 1);

        //CURL_SSLVERSION_TLSv1

    }

    curl_setopt($oCurl, CURLOPT_URL, $url);

    curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);

    $sContent = curl_exec($oCurl);

    $aStatus = curl_getinfo($oCurl);

    curl_close($oCurl);

    if (intval($aStatus["http_code"]) == 200) {

        return $sContent;

    } else {

        return false;

    }

}

post方法

    // curlpost请求

    function http_post($url, $data = NULL, $json = false)

    {

        $curl = curl_init();

        curl_setopt($curl, CURLOPT_URL, $url);

        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

        if (!empty($data)) {

            if ($json && is_array($data)) {

                $data = json_encode($data);

            }

            curl_setopt($curl, CURLOPT_POST, 1);

            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

            if ($json) { //发送JSON数据

                curl_setopt($curl, CURLOPT_HEADER, 0);

                curl_setopt(

                    $curl,

                    CURLOPT_HTTPHEADER,

                    array(

                        'Content-Type: application/json; charset=utf-8',

                        'Content-Length:' . strlen($data)

                    )

                );

            }

        }

        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

        $res = curl_exec($curl);

        $errorno = curl_errno($curl);

        if ($errorno) {

            return array('errorno' => false, 'errmsg' => $errorno);

        }

        curl_close($curl);

        return json_decode($res, true);

    }

㈥ php 提交post数据的问题

在php中要模拟post请求数据提交我们会使用到curl函数,下面我来给大家举几个curl模拟post请求提交数据例子有需要的朋友可参考参考。
注意:curl函数在php中默认是不被支持的,如果需要使用curl函数我们需在改一改你的php.ini文件的设置,找到php_curl.dll去掉前面的";"就行了
例1
<?php
$uri = "http://tanteng.app.com/test.php";
// 参数数组
$data = array (
'name' => 'tanteng'
// 'password' => 'password'
);

$ch = curl_init ();
// print_r($ch);
curl_setopt ( $ch, CURLOPT_URL, $uri );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
$return = curl_exec ( $ch );
curl_close ( $ch );

print_r($return);
接受php页面远程服务器:
<?php
if(isset($_POST['name'])){
if(!empty($_POST['name'])){
echo '您好,',$_POST['name'].'!';
}
}
?>
例2
用CURL模拟POST请求抓取邮编与地址
完整代码: 代码如下
#!/usr/local/php/bin/php
<?php
$runtime = new runtime ();
$runtime->start ();

$cookie_jar = tempnam('/tmp','cookie');
$filename = $argv[1];
$start_num= $argv[2];
$end_num = $argv[3];

for($i=$start_num; $i<$end_num; $i++){
$zip = sprintf('6s',$i);

$fields_post = array(
'postcode' => $zip,
'queryKind' => 2,
'reqCode' => 'gotoSearch',
'search_button.x'=>37,
'search_button.y'=>12
);

$fields_string = http_build_query ( $fields_post, '&' );
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "URL?reqCode=gotoSearch&queryKind=2&postcode=".$zip);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120 );
curl_setopt($ch, CURLOPT_REFERER, $refer );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_login );
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar );
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar );
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string );

$data = curl_exec($ch);
preg_match_all('/id="table1">[s]*?<tr>[s]*?<td class="maintext">[sS]*?</td>[s]*?</tr>/', $data, $matches);
if (!$handle = fopen($filename, 'a+')) {
echo "不能打开文件 $filename";
echo "n";
exit;
}

if (fwrite($handle, $matches[0][1]) === FALSE) {
echo "不能写入到文件 $filename";
echo "n";
exit;
}

echo "成功地将 $somecontent 写入到文件$filename";
echo "n";

fclose($handle);
curl_close($ch);
}

class runtime
{
var $StartTime = 0;
var $StopTime = 0;
function get_microtime()
{
list($usec,$sec)=explode(' ',microtime());return((float)$usec+(float)$sec);
}
function start()
{
$this->StartTime=$this->get_microtime();
}
function stop(){
$this->StopTime=$this->get_microtime();
}
function spent()
{
return ($this->StopTime-$this->StartTime);
}
}

$runtime->stop ();

$con = 'Processed in'.$runtime->spent().'seconds';
echo 'Processed in'. $runtime->spent().'seconds';
模拟POST请求 提交数据或上传文件 .
.
代码如下 复制代码
http://www.a.com/a.php
发送POST请求
function execUpload(){

$file = '/doucment/Readme.txt';
$ch = curl_init();
$post_data = array(
'loginfield' => 'username',
'username' => 'ybb',
'password' => '123456',
'file' => '@d:usrwwwtranslatedocumentReadme.txt'
);
curl_setopt($ch, CURLOPT_HEADER, false);
//启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data);
curl_setopt($ch, CURLOPT_URL, 'http://www.b.com/handleUpload.php');
$info= curl_exec($ch);
curl_close($ch);

print_r($info);
}
2.http://www.b.com/handleUpload.php
function handleUpload(){
print_r($_POST);
echo '===file upload info:';
print_r($_FILES);
}
■cURL 函数
■curl_close — 关闭一个cURL会话
■curl__handle — 复制一个cURL句柄和它的所有选项
■curl_errno — 返回最后一次的错误号
■curl_error — 返回一个保护当前会话最近一次错误的字符串
■curl_exec — 执行一个cURL会话
■curl_getinfo — 获取一个cURL连接资源句柄的信息
■curl_init — 初始化一个cURL会话
■curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄
■curl_multi_close — 关闭一组cURL句柄
■curl_multi_exec — 运行当前 cURL 句柄的子连接
■curl_multi_getcontent — 如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流
■curl_multi_info_read — 获取当前解析的cURL的相关传输信息
■curl_multi_init — 返回一个新cURL批处理句柄
■curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源
■curl_multi_select — 等待所有cURL批处理中的活动连接
■curl_setopt_array — 为cURL传输会话批量设置选项
■curl_setopt — 设置一个cURL传输选项
■curl_version — 获取cURL版本信息

㈦ php使用curl的post方法字符串和数组传值的区别

在PHP手册的curl_setopt函数中,关于CURLOPT_POSTFIELDS有如下描述:
全部数据使用HTTP协议中的"POST"操作来发送。
要发送文件,在文件名前面加上@前缀并使用完整路径。(5.5+建议用CURLFile)
这个参数可以通过urlencoded后的字符串类似'para1=val1&para2=val2&...'
或使用一个以字段名为键值,字段数据为值的数组。
如果value是一个数组,Content-Type头将会被设置成multipart/form-data。

因此,这两种传值方式是有所区别的。

当然,可以通过CURLOPT_HTTPHEADER指定Content-Type。

更多PHPcURL内容,请参考我的博客《PHPcURL实现模拟登录与采集使用方法详解教程》

㈧ php curl是post还是get

php curl 是一个功能十分强大的组件。

不管是post还是get都是可以的(默认get)

设置方式

$ch=curl_init();
curl_setopt($ch,CURLOPT_POST,1);//post方式

㈨ php curl post怎么传值

1、设置请求方式为post
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); #设置post请求
2、设置POST请求内容和请求长度
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);#设置post数据
更多PHP相关的知识,可以参考:PHP程序员,雷雪松的个人博客。

㈩ 如何使用php中的curl方法向服务器发送post请求

你理解错了,暂时可以简单的理解成get是请求,post是发送,且是前端对于后端来说。post基本是指你前端页面要提交数据给后台,怎么提交?用post提交给后台,后台用$_POST接受你提交过来的数据,然后再按业务逻辑处理这些数据。

热点内容
一台服务器多个同段地址怎么通讯 发布:2025-01-20 16:45:58 浏览:734
i7源码 发布:2025-01-20 16:40:48 浏览:983
抽签源码 发布:2025-01-20 16:38:35 浏览:62
密码箱怎么锁住 发布:2025-01-20 16:32:17 浏览:31
编译隔离 发布:2025-01-20 16:28:54 浏览:358
从哪里看自己的qq账号和密码 发布:2025-01-20 16:22:33 浏览:400
sql语句动态 发布:2025-01-20 16:18:22 浏览:298
sql表或的语句 发布:2025-01-20 16:00:49 浏览:163
西瓜视频怎么缓存不了电影了 发布:2025-01-20 16:00:45 浏览:890
javatimer 发布:2025-01-20 15:55:56 浏览:64