Вот мой код
$xml_data ='<chatRoom>
<broadcastPresenceRoles>
<broadcastPresenceRole>moderator</broadcastPresenceRole>
<broadcastPresenceRole>participant</broadcastPresenceRole>
<broadcastPresenceRole>visitor</broadcastPresenceRole>
</broadcastPresenceRoles>
<canAnyoneDiscoverJID>false</canAnyoneDiscoverJID>
<canChangeNickname>false</canChangeNickname>
<canOccupantsChangeSubject>false</canOccupantsChangeSubject>
<canOccupantsInvite>false</canOccupantsInvite>
<creationDate>2014-02-12T15:52:37.592+01:00</creationDate>
<description>Global Chat Room</description>
<logEnabled>true</logEnabled>
<loginRestrictedToNickname>false</loginRestrictedToNickname>
<maxUsers>30</maxUsers>
<membersOnly>false</membersOnly>
<moderated>false</moderated>
<naturalName>global-1</naturalName>
<owners>
<owner>admin@localhost</owner>
</owners>
<password>test</password>
<persistent>true</persistent>
<publicRoom>true</publicRoom>
<registrationEnabled>false</registrationEnabled>
<roomName>global</roomName>
</chatRoom>';
$opts = array('http' =>
array(
'method' => 'POST',
'header' => "Content-Type: text/xml",//\r\n".
"Authorization: Basic ".base64_encode("admin:admin"),//."\r\n",
'timeout' => 60
)
);
`$URL = 'http://localhost:9090/plugins/mucservice/chatrooms'`;
$ch = curl_init($URL);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml', "Authorization: Basic ".base64_encode("admin:admin")."\r\n"));
curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml_data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$output = curl_exec($ch);
echo 'Code : '.$code;
print_r($output);
curl_close($ch);
С помощью этого кода я отправляю почтовый запрос в плагин openfire muc с данными xml и заголовками авторизации, поскольку этот файл readme предложил мне сделать [ https://www.igniterealtime.org/projects/openfire/plugins/mucservice/readme.html] .. Неверный запрос 400 .
Журналы Openfire
2014.07.18 11:04:26 org.jivesoftware.openfire.container.PluginServlet - 14
java.lang.ArrayIndexOutOfBoundsException: 14
at javax.xml.bind.DatatypeConverterImpl._parseBase64Binary(Unknown Source)
at javax.xml.bind.DatatypeConverterImpl.parseBase64Binary(Unknown Source)
at javax.xml.bind.DatatypeConverter.parseBase64Binary(Unknown Source)
at org.jivesoftware.openfire.plugin.servlet.BasicAuth.decode(BasicAuth.java:18)
at org.jivesoftware.openfire.plugin.servlet.AuthFilter.filter(AuthFilter.java:39)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1527)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:540)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:715)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.jivesoftware.openfire.container.PluginServlet.handleServlet(PluginServlet.java:316)
at org.jivesoftware.openfire.container.PluginServlet.service(PluginServlet.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1359)
at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:78)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330)
at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:164)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
at org.eclipse.jetty.server.Server.handle(Server.java:349)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:919)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
at java.lang.Thread.run(Unknown Source
Я застрял с этой вещью с давних пор .. Пожалуйста, помогите мне ..
Заранее спасибо..