使用PHP

时间:2015-07-23 16:30:33

标签: php json api rest curl

我在stackoverflow上找到了一些有用的链接但是它们没有帮助我完成我的任务,因为我是一个完全初学者,试图编写PHP或使用curl等。

Send json post using php

Posting JSON data to API using CURL

我一直在Chrome中使用Postman来测试API调用,但我现在想在我的Apache Web服务器上组装一个演示系统。

有没有人有一个PHP webform将json对象发布到REST API的示例?

以下是我要发送内容的示例:

<?php
$url = "https://api.url/api/v1//accounts/create";
$jdata = json_encode($data);
$data = [{
  "status": "active",
  "username": ["uname"],
  "password": ["pword"],
  "attributes": {
    "forenames": ["fname"],
    "surname": ["lname"],
    "emailAddress": ["email"]
                 },
          }]
?>

任何建议都会很棒。就像我说的,我是curl和php的新手,我不熟悉其他文章中提到的数组方法,而[“info”]元素应填充我的webform中填写的信息。

我希望我简明扼要,但如果您需要更多信息,请告诉我。

斯努克

1 个答案:

答案 0 :(得分:2)

尝试以下内容,相应地修改步骤1和2:

function sendRequest($data,$url)
{
    $postdata = http_build_query(array('data'=>$data));
    $opts = array('http' =>
      array(
          'method'  => 'POST',
          'header'  => "Content-type: application/x-www-form-urlencoded \r\n",
                       //"X-Requested-With: XMLHttpRequest \r\n".
                       //"curl/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b) (ipv6 enabled)\r\n",
          'content' => $postdata,
          'ignore_errors' => true,
          'timeout' =>  10,
      )
    );
    $context  = stream_context_create($opts);
    return file_get_contents($url, false, $context);
}


// 1.- add your json
$data = '[{
    "status"      : "active",
    "username"    : ["uname"],
    "password"    : ["pword"],
    "attributes"  : {
        "forenames"   : ["fname"],
        "surname"     : ["lname"],
        "emailAddress": ["email"]
    },
}]';

// 2.- add api endpoint
$url= "https://api.url/api/v1//accounts/create"; 

// 3.- fire
$result = sendRequest($data,$url);

// 4.- dump result
echo $result;
die();
祝你好运!!