第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Curl和PHP-如何通過PUT,POST,GET通過curl傳遞json

Curl和PHP-如何通過PUT,POST,GET通過curl傳遞json

PHP
慕的地6264312 2019-10-08 09:57:59
我一直在為它構(gòu)建一個Rest API,并且一直在使用命令行中的curl對它進行測試,這對于CRUD非常容易我可以從命令行成功進行這些調(diào)用curl -u username:pass -X GET http://api.mysite.com/pet/1curl -d '{"dog":"tall"}' -u username:pass -X GET http://api.mysite.com/petcurl -d '{"dog":"short"}' -u username:pass -X POST http://api.mysite.com/petcurl -d '{"dog":"tall"}' -u username:pass -X PUT http://api.mysite.com/pet/1上面的調(diào)用很容易從命令行進行,并且可以在我的api上正常使用,但是現(xiàn)在我想使用PHP創(chuàng)建curl。如您所見,我將數(shù)據(jù)作為json字符串傳遞。我已經(jīng)閱讀了很多,我想我可能可以進行POST并包含POST字段,但是我無法找出如何通過GET傳遞http正文數(shù)據(jù)。我看到的所有內(nèi)容都說您必須將其附加到url,但在命令行表單上看起來卻不是這樣。無論如何,如果有人可以在一頁上寫出正確的方法來用PHP執(zhí)行這四個操作,我會喜歡的。我想看看使用curl和php的最簡單方法。我想我需要通過http正文傳遞所有內(nèi)容,因為我的php api使用php:// input捕捉了所有內(nèi)容
查看完整描述

3 回答

?
慕娘9325324

TA貢獻1783條經(jīng)驗 獲得超4個贊


$data = array('username'=>'dog','password'=>'tall');

$data_json = json_encode($data);


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data_json)));

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');

curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response  = curl_exec($ch);

curl_close($ch);

開機自檢


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response  = curl_exec($ch);

curl_close($ch);

GET 參見@Dan H答案


刪除


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");

curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response  = curl_exec($ch);

curl_close($ch);


查看完整回答
反對 回復 2019-10-08
?
慕容708150

TA貢獻1831條經(jīng)驗 獲得超4個贊

對于我自己,我只是將其編碼為url并在目標頁面上使用$ _GET。這是一行示例。


$ch = curl_init();

$this->json->p->method = "whatever";

curl_setopt($ch, CURLOPT_URL, "http://" . $_SERVER['SERVER_NAME'] . $this->json->path . '?json=' . urlencode(json_encode($this->json->p)));

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$output = curl_exec($ch);

curl_close($ch);

編輯:添加目標代碼段...(編輯2在OP的要求下添加了更多內(nèi)容)


<?php

if(!isset($_GET['json']))

    die("FAILURE");

$json = json_decode($_GET['json']);

$method = $json->method;

...

?>


查看完整回答
反對 回復 2019-10-08
  • 3 回答
  • 0 關(guān)注
  • 1649 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號