我在stackoverflow上找到了一些有用的链接但是它们没有帮助我完成我的任务,因为我是一个完全初学者,试图编写PHP或使用curl等。
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中填写的信息。
我希望我简明扼要,但如果您需要更多信息,请告诉我。
斯努克
答案 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();
祝你好运!!