首页 > 解决方案 > PHP Curl 和 json 发布错误 false

问题描述

在使用方面我是新手PHP curl and ajax

我被要求执行以下操作(附上一张图片供您考虑).. 有要求

在此处输入图像描述

最初我尝试发送请求,jquery ajax但它在这里不起作用是代码:

function sendAPI(){
  $.ajax({
    url: "https://someurl.com/api/page/index",
    headers: {
        'x-api-key':"[API KEY GIVEN BY THE COMPANY]",
        'Content-Type':'application/json'
    },
    method: 'POST',
    dataType: 'jsonp',
    data: {
      id: "7001345730",
      recordNo: "1000000000",
      recordDate: "2017-12-12",
      phone: "+966555555555",
      extension: "1234",
      email: "feras@test.com",
      managerName: "Amjad",
      managerPhone: "+966555555555",
      managerMobile: "+966555555555"
    },
    success: function(data){
      console.log('lllk');
      console.log('succes: ' + data);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown){
      console.log("textStatus: ", textStatus);
      console.log("errorThrown: ", errorThrown);
    }
  });
}
sendAPI();

我的控制台上显示以下错误消息

请注意: I tried both json and jsonp dataType but same result textStatus: error errorThrown: error

之后我尝试php curl了,但我也得到了错误。

这是php curl代码:

$id ="7001345730";
$recordNo = "1000000000" ;
$recordIssueDate = "2017-12-12" ;
$phone = "+966555555555" ;
$extension = "1234" ;
$email = "feras@test.com" ;
$managerName = "Adeel Essa" ;
$managerPhone = "+966555555555" ;
$managerMobile = "+966555555555";

$data = array( 
  "id" => $id,
  "recordNo" =>  $recordNo,
  "recordIssueDate" =>  $recordIssueDate,
  "phone" =>  $phone,
  "extension" =>  $extension,
  "email" =>  $email,
  "managerName" =>  $managerName,
  "managerPhone" =>  $managerPhone,
  "managerMobile" =>  $managerMobile,
);


$ch = curl_init('https://someurl.com/api/page/index');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Content-Type: application/json',
  "x-api-key: 56DAAC8KAD-SFOL9267B-B97E1A9E"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

$result = curl_exec($ch); //get return String
echo json_encode($result);


if (curl_error($ch)) {
  $error_msg = curl_error($ch);
}
curl_close($ch);

if (isset($error_msg)) {
    print_r($error_msg);
}

当我执行上述代码时,出现以下错误:

false
Failed to connect to wasl.elm.sa port 443: Timed out 

最后我唯一的问题是:

  1. 如果我做得对或者我的代码中缺少某些东西。
  2. 在两者上JQuery and PHP CURL codes
  3. 如果是这样,我需要改变什么。

上图中也提到了要求

请帮忙

标签: phpajaxapicurlpost

解决方案


推荐阅读