簡體   English   中英

為什么我的 POST 請求在使用 cURL 的 PHP 中超時,但在 Postman 中沒有?

[英]Why does my POST request time out in PHP using cURL, but not in Postman?

我有一個 auth.php 文件,它應該向帶有一些標題、數據和內容的 API 發出請求。

我嘗試了Postman ,幾乎立即就給了我答復。

我復制了代碼 (PHP > cURL) 並嘗試了它,它會waiting for MYPRIVATESITE.com 30 秒(我將超時設置為那個),然后只是cURL ERROR: TIMED OUT超時(或類似的東西)。

我做錯了什么? 它適用於例如郵遞員,那么為什么我的網站不適用?

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => "https://discordapp.com/api/v6/oauth2/token",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "client_id=PRIVATEID&client_secret=PRIVATEKEY&grant_type=authorization_code&code=$code&redirect_uri=https%3A%2F%2Fkanebot.epizy.com%2Fauth.php&scope=identify%20guilds&undefined=",
    CURLOPT_HTTPHEADER => array(
        "Content-Type: application/x-www-form-urlencoded",
        "cache-control: no-cache"
    )
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #:" . $err;
} else {
    echo $response;
}

注意: PRIVATEKEYPRIVATEID在那里,我只是刪除它們,因為我不希望其他人竊取它。 它已定義,並且有效(閱讀)。 還定義了$code

這是因為丟失了&您的運營商POSTFIELDS之間client_secretgrant_type

嘗試添加&並查看它之后是否有效(它肯定會解決您遇到的問題之一)

client_id=PRIVATEID&client_secret=PRIVATEKEYgrant_type=authorization_code&code=$code&redirect_uri=https%3A%2F%2Fkanebot.epizy.com%2Fauth.php&scope=identify%20guilds&undefined=

暫無
暫無

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

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