Я использую codeigniter и хочу отправить запрос на добавление в openfire, но я не совсем понимаю, что мне нужно делать. Я новичок, я читаю это руководство Сервис пользователя и я попытался добавить нового пользователя с помощью curl Curl lib, но я застрял Openfire правильно настроен, потому что, если я сделаю запрос из браузера, добавление работает
Это мой код
$this->load->library('curl');
$username='usertest';
$password='password';
$header='Authorization';
$content='mykey';
$this->curl->create('http://myserver.net', 9090);
$this->curl->http_header($header, $content);
$this->curl->http_header('Content-Type', 'application/xml');
$this->curl->post(array('username'=>$username,'password'=>$password));
$this->curl->execute();
Но пользователи не добавляются
Я извиняюсь за мой плохой английский
Вот одна из реализаций клиентского сервиса пользователя (она основана на Curl, но не на codeigniter):
$url = "http://localhost:9090/plugins/userService/users";
$xml = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<user>
<username>'.$user['username'].'</username>
<password>'.$user['password'].'</password>
<name>'.$user['name'].'</name>
<email>'.$user['email'].'</email>
</user>';//open connection
$ch = curl_init();//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER,true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: secret',
'Content-Type: application/xml'
));
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml );
#curl_setopt($ch,CURLOPT_POSTFIELDSPOST, count($fields));
#curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);//execute post
$result = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
ob_start(); // outer buffer
#echo "Code: $http_status | Username: {$user['name']}\n";
ob_end_flush();
//close connection
curl_close($ch);
if ($http_status == 201) {
return true;
}
else return false;
Вы должны установить тип содержимого и авторизацию в виде массива в заголовке.
И ваш XML-контент выглядит неправильно. Это не только имя пользователя / пароль в массиве.
Других решений пока нет …