簡體   English   中英

PHP cURL不會將JSON發布到API

[英]PHP cURL won't POST JSON to API

我有一個帶有鏈接的儀表板,該鏈接觸發數據庫將應用程序狀態更新為“已批准”並發布到API。 正在更新數據庫,但未通過電子郵件發送收件人。

數據庫步驟正在運行,但無法發布到API。 該API觸發向個人發送電子郵件。

免責聲明:如果您未提供正確/足夠的信息,我是編碼的新手,因此深表歉意。

<?php

require_once 'login.php';
$conn = new mysqli($hn, $un, $pw, $db); //Connect DB
$id = $_GET['id'];
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error()); 
  }

//Create query based on the ID passed from table
// sql to update a record
$sql = "UPDATE all_contacts SET status='Approved' WHERE id = '$id'"; 

$url = 'https://mail.com/messages/email';
$data = array(
  "subject" => "Hello!",
  "body" => "hi",
  "recipients" => array (
    "email" => "example@email.com")
  );
$data_string = json_encode($data);
$ch = curl_init($url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "Content-Type: application/json",
    "X-AUTH-TOKEN: mytoken",
    "Content-Length: ". strlen($data_string)));

$result = curl_exec($ch);
echo $result;
curl_close($ch);

if (mysqli_query($conn, $sql)) {
    mysqli_close($conn);
    header("Location: dashboard.php"); 
    exit;
} else {
    echo "Error changing status";
}

?>

預期結果:用新的應用程序狀態更新數據庫,並觸發一封電子郵件到$ data中列出的電子郵件。

實際結果:它更新數據庫,但不發布到API。

測試了您的代碼,它可以正常工作。

我對Beeceptor進行了測試。

在此處輸入圖片說明

在此處輸入圖片說明

作為錯誤您得到了什么?

暫無
暫無

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

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