Warak 47 Опубликовано 14 июня, 2016 (изменено) Пытаюсь спарсить данные с с одной игры браузерной. данные в AMF3. Пинг команда уходит норм но вот с ответом беда. package booot; import java.awt.Label; import java.util.HashMap; import flex.messaging.io.ArrayCollection; import flex.messaging.io.ArrayList; import flex.messaging.io.amf.AmfTrace; import flex.messaging.io.amf.client.AMFConnection; import flex.messaging.io.amf.client.exceptions.ClientStatusException; import flex.messaging.io.amf.client.exceptions.ServerStatusException; import flex.messaging.messages.AcknowledgeMessage; import flex.messaging.messages.CommandMessage; import flex.messaging.messages.Message; import flex.messaging.messages.RemotingMessage; import flex.messaging.util.UUIDUtils; public class main { public static void main(String[] args) { String url = "http://s1.mlgame.ru/messagebroker/myamflongpoll;gamesessionid=1foxx91po205y1cda91uh9adwd?clientTag=c4482f8a2c537b909ea1a3b63b48fdbe"; AMFConnection amfConnection = new AMFConnection(); try { amfConnection.connect(url); } catch (ClientStatusException cse) { System.out.println("Error connecting url: " + cse); return; } try { amfConnection.addHttpRequestHeader("Cookie", "6250CED9FBC7D5894B79973DEC1503A6"); amfConnection.addHttpRequestHeader("Content-type", "application/x-amf"); amfConnection.setAmfTrace(new AmfTrace()); amfConnection.setObjectEncoding(3); // System.out.println(amfConnection); CommandMessage cmsg = new CommandMessage(); cmsg.setOperation(CommandMessage.CLIENT_PING_OPERATION); cmsg.setMessageId(UUIDUtils.createUUID()); cmsg.setHeader(Message.FLEX_CLIENT_ID_HEADER, ""); cmsg.setHeader(Message.ENDPOINT_HEADER, "nil"); AcknowledgeMessage ack = (AcknowledgeMessage)amfConnection.call(null, cmsg); } catch (ServerStatusException sse) { System.out.println(sse); } catch (ClientStatusException e) { e.printStackTrace(); System.out.println(e.getLocalizedMessage()); } } } выдаёт flex.messaging.io.SerializationException: Class 'flex.messaging.io.amf.ASObject' must implement java.io.Externalizable to receive client IExternalizable instances стэктрейс ClientStatusException message: flex.messaging.io.SerializationException: Class 'flex.messaging.io.amf.ASObject' must implement java.io.Externalizable to receive client IExternalizable instances. code: AMFConnection.Call.Failed at flex.messaging.io.amf.client.AMFConnection.call(AMFConnection.java:526) at booot.main.main(main.java:48) Caused by: flex.messaging.io.SerializationException: Class 'flex.messaging.io.amf.ASObject' must implement java.io.Externalizable to receive client IExternalizable instances. at flex.messaging.io.amf.Amf3Input.readExternalizable(Amf3Input.java:498) at flex.messaging.io.amf.Amf3Input.readScriptObject(Amf3Input.java:420) at flex.messaging.io.amf.Amf3Input.readObjectValue(Amf3Input.java:152) at flex.messaging.io.amf.Amf3Input.readObject(Amf3Input.java:130) at flex.messaging.io.amf.Amf3Input.readObjectOneLevelDown(Amf3Input.java:754) at flex.messaging.io.amf.Amf3Input.readScriptObject(Amf3Input.java:439) at flex.messaging.io.amf.Amf3Input.readObjectValue(Amf3Input.java:152) at flex.messaging.io.amf.Amf3Input.readObject(Amf3Input.java:130) at flex.messaging.io.amf.Amf0Input.readObjectValue(Amf0Input.java:123) at flex.messaging.io.amf.Amf0Input.readObject(Amf0Input.java:94) at flex.messaging.io.amf.AmfMessageDeserializer.readObject(AmfMessageDeserializer.java:227) at flex.messaging.io.amf.AmfMessageDeserializer.readBody(AmfMessageDeserializer.java:206) at flex.messaging.io.amf.AmfMessageDeserializer.readMessage(AmfMessageDeserializer.java:126) at flex.messaging.io.amf.client.AMFConnection.processHttpResponseBody(AMFConnection.java:697) at flex.messaging.io.amf.client.AMFConnection.processHttpResponse(AMFConnection.java:675) at flex.messaging.io.amf.client.AMFConnection.send(AMFConnection.java:794) at flex.messaging.io.amf.client.AMFConnection.call(AMFConnection.java:516) ... 1 more Ответ сервера на скрине. Я прекрасно понимаю что ява не может десерилизовать ответ. Но почему хз. П.С. Яву я не знаю и пишу эту хрень по приборам т.к. схожа с C#. Так что прошу разжевать как для идиота) Изменено 14 июня, 2016 пользователем Warak Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты