我想使用PHP前端将一些CURL发布到REST API。 我项目的简短描述...... 用户(我们称他为Anton)在Startsite上的经典登录表单上登录。之后,用户应该登录,直到他想要注销(但这不是问题)。用户的主要任务是使用项目名称和描述填充表单。提交后,数据将传输到JSON对象,该对象在软件中创建项目。当我通过终端手动运行CURL命令时,一切正常。但遗憾的是我的PHP脚本。
登录在终端
中正常工作curl -v \
-c cookie.txt \
-X POST \
-F j_username=Anton \
-F j_password=pw \
http://test.com/login.json
登录在PHP中正常工作
<?php
//Login
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', '1');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://test.com/login.json");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
curl_setopt ($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
curl_setopt($ch, CURLOPT_POST, true);
$data = array(
'j_username' => 'Anton',
'j_password' => 'pw',
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
?>
**创建Projekt在Terminal中工作正常,但在php中不行 创建一个Projekt ......我完全不知道! 我如何使用Cookie.txt以及如何使用数据填充数组(-d部分)?
...我怎样才能保持登录以创建项目?
curl -v \
-b cookie.txt \
-X POST \
-H "Content-Type: application/json" \
-d '{"name":"name12345", "description":"Some Kind of Description"}' \
http://test.com/productions.json
...编辑 但它实际上不起作用。我有问题使用cookie.txt :(
<?php
// //Create Production
function post_to_url($url, $data) {
$fields = '';
foreach($data as $key => $value) {
$fields .= $key . '=' . $value . '&';
}
rtrim($fields, '&');
$post = curl_init();
curl_setopt($post, CURLOPT_URL, $url);
curl_setopt($post, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
curl_setopt($post, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
curl_setopt($post, CURLOPT_POST, count($data));
curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($post);
curl_close($post);
}
$data = array(
"name" => "Max",
"description" => "Some kind of description"
);
post_to_url("http://test.com/productions.json", $data);
print_r($data);
?>
我非常相信你的帮助。 谢谢!
答案 0 :(得分:0)
curl -v \
-b cookie.txt \
-X POST \
-H "Content-Type: application/json" \
-d '{"name":"name12345", "description":"Some Kind of Description"}' \
http://test.com/productions.json
...使用CURL_SETOPT到PHP。
非常感谢!!!!