當前位置:首頁 » 編程語言 » 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接受你提交過來的數據,然後再按業務邏輯處理這些數據。

熱點內容
配置文件ini如何寫 發布:2024-03-29 17:31:05 瀏覽:997
如何更改微信密碼修改 發布:2024-03-29 17:24:49 瀏覽:588
探影哪個配置性價比最高 發布:2024-03-29 17:24:08 瀏覽:485
phpmyadminlinux安裝 發布:2024-03-29 17:13:15 瀏覽:792
python中replace 發布:2024-03-29 17:08:17 瀏覽:652
mdb導入sql 發布:2024-03-29 17:07:36 瀏覽:128
java資料庫工具類 發布:2024-03-29 16:31:15 瀏覽:388
安卓機哪裡看型號 發布:2024-03-29 15:59:40 瀏覽:281
cad解壓錯誤 發布:2024-03-29 15:01:45 瀏覽:79
存儲指令集 發布:2024-03-29 14:39:27 瀏覽:649