簡體   English   中英

CURL PHP POST會干擾JSON

[英]CURL PHP POST interferes with JSON

我目前有一個返回JSON的API腳本。 它一直在努力,直到我嘗試在它之前添加curl php POST腳本。 curl腳本正在運行它自己,它也在API腳本中工作。 但是,未返回JSON代碼。

以下這種方法是否存在根本錯誤?

提前致謝。

編輯: curl腳本自己100%工作。 所述腳本也在下面工作,只是JSON沒有返回。

$name   = "foo";
$age    = "bar";

//set POST variables
$url = 'https://www.example.com';

$fields = array(
            'name' => urlencode($name),
            'age' => urlencode($age)
        );

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);    
return json_encode(
    array(
        "status" => 1,
        "message" => "Success!",
        "request" => 10
    )
);

您需要執行以下使用echo並使用CURLOPT_RETURNTRANSFER否則輸出將直接傳輸到頁面而不是$result

$name = "foo";
$age = "bar";
$url = 'http://.../a.php';
$fields = array('name' => urlencode($name),'age' => urlencode($age));
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
curl_close($ch);

header('Content-type: application/json'); 
echo json_encode(array("status" => 1,"message" => "Success!","request" => 10));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM