2015-07-23 7 views
0

Я нашел пару полезных ссылок на stackoverflow, но они не помогли мне выполнить мою задачу, потому что я полный новичок в попытке написать PHP или использовать завиток и т. Д.Публикация объекта JSON на REST API с использованием PHP

Send json post using php

Posting JSON data to API using CURL

Я использую Почтальон в Chrome для тестирования вызовов API, но теперь я хочу, чтобы собрать демонстрационную систему на моем веб-сервере Apache.

Есть ли у кого-нибудь пример публикации веб-формы PHP в json Object для 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] должны заполняться информацией, заполненной на моей веб-форме.

Надеюсь, я был кратким и пояснительным, но, пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Снук

ответ

1

Попробуйте что-то вроде следующего, изменяя шаги 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(); 

удачи !!

+0

Не могли бы вы привести полный пример с json post –

 Смежные вопросы

  • Нет связанных вопросов^_^