簡體   English   中英

-d不是數組而是字符串時,將命令行cURL轉換為php cURL

[英]commandline cURL to php cURL when -d is not an array but a string

這是我的命令行cURL代碼

curl -v --insecure -XPOST -H 'X-USER: nxxx' -H 'X-SIGNATURE: dxxx' -H "Content-type: application/json" -d '444' 'https://cxxx.com/api/balance'

它運作完美...

我的問題是我試圖將其轉換為php cURL,但我不斷收到{“ error”:“ AUTHENTICATION ERROR”}

這是我對php的最新嘗試...

<?php

$json_url = "https://cxxx.com/api/balance";

// -d variable from cURL
$json_string = "444";

$headers = array();
$headers[] = 'X-USER: nxxx';
$headers[] = 'X-SIGNATURE: dxxx';
$headers[] = 'Content-Type: application/json';



$ch = curl_init($json_url);


// Configuring curl options
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_VERBOSE => true,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_POST => true,
CURLOPT_HTTPAUTH => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => $json_string,//encoding for -d variable cURL
);

// Setting curl options
curl_setopt_array( $ch, $options );

// Getting results
$result = curl_exec($ch); 
echo ($result);
?>

其原因是CURLOPT_SSL_VERIFYPEER設置為true,您可以看到curl命令包含--insecure然后必須將此CURLOPT_SSL_VERIFYPEER設置為false,我還編寫了一個代碼,發送與您發布的curl命令相同的請求,請嘗試

<?php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://cxxx.com/api/balance");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "444");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //since you put --insecure
curl_setopt($ch, CURLOPT_HTTPHEADER,["X-USER: nxxx","X-SIGNATURE: dxxx","Content-type: application/json"]);
$response = curl_exec($ch);

echo $response;

暫無
暫無

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

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