Je reçois le statut 415 du client N95 pour l'envoi du serveur devinf. J'ai essayé beaucoup de choses mais pas de succès.syncml status 415 pour devinf
Voici la réponse du serveur (généré par moi, j'écris mon propre implémentation de serveur SyncML.):
<?xml version="1.0"?>
<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd">
<SyncML>
<SyncHdr>
<VerDTD>1.2</VerDTD>
<VerProto>SyncML/1.2</VerProto>
<SessionID>14</SessionID>
<MsgID>1</MsgID>
<Target>
<LocURI>IMEI:356406027185460</LocURI>
</Target>
<Source>
<LocURI>http://localhost:8880</LocURI>
</Source>
<Meta>
<MaxMsgSize xmlns="syncml:metinf">10000</MaxMsgSize>
</Meta>
</SyncHdr>
<SyncBody>
<Status>
<MsgRef>1</MsgRef>
<Data>200</Data>
<Cmd>Alert</Cmd>
<CmdRef>1</CmdRef>
<CmdID>1</CmdID>
</Status>
<Status>
<MsgRef>1</MsgRef>
<Data>200</Data>
<Cmd>Put</Cmd>
<CmdRef>2</CmdRef>
<CmdID>2</CmdID>
</Status>
<Status>
<MsgRef>1</MsgRef>
<Data>200</Data>
<Cmd>Get</Cmd>
<CmdRef>3</CmdRef>
<CmdID>3</CmdID>
<TargetRef>./devinf12</TargetRef>
</Status>
<Results>
<MsgRef>1</MsgRef>
<Item>
<Meta>
<Type xmlns="syncml:metinf">application/vnd.syncml-devinf+xml</Type>
</Meta>
<Source>
<LocURI>./devinf12</LocURI>
</Source>
<Data>
<DevInf xmlns="syncml:devinf">
<VerDTD>1.2</VerDTD>
<Man>my company ltd.</Man>
<Mod>syncml mod</Mod>
<SwV>0.01</SwV>
<FwV>1.01</FwV>
<HwV>0.1a</HwV>
<DevID>syncmlserv</DevID>
<DevTyp>server</DevTyp>
<DataStore>
<SourceRef>./contacts</SourceRef>
<Rx-Pref>
<CTType>text/vcard</CTType>
<VerCT>3.0</VerCT>
</Rx-Pref>
<Rx>
<CTType>text/vcard</CTType>
<VerCT>2.1</VerCT>
</Rx>
<Tx-Pref>
<CTType>text/vcard</CTType>
<VerCT>3.0</VerCT>
</Tx-Pref>
<Tx>
<CTType>text/vcard</CTType>
<VerCT>2.1</VerCT>
</Tx>
<CTCap>
<CTType>text/x-vcard</CTType>
<PropName>BEGIN</PropName>
<ValEnum>VCARD</ValEnum>
<PropName>END</PropName>
<ValEnum>VCARD</ValEnum>
<PropName>VERSION</PropName>
<ValEnum>2.1</ValEnum>
<PropName>N</PropName>
<PropName>TEL</PropName>
<ParamName>VOICE</ParamName>
<ParamName>FAX</ParamName>
<ParamName>CELL</ParamName>
</CTCap>
<CTCap>
<CTType>text/x-vcard</CTType>
<PropName>BEGIN</PropName>
<ValEnum>VCARD</ValEnum>
<PropName>END</PropName>
<ValEnum>VCARD</ValEnum>
<PropName>VERSION</PropName>
<ValEnum>3.0</ValEnum>
<PropName>N</PropName>
<PropName>TEL</PropName>
<ParamName>VOICE</ParamName>
<ParamName>FAX</ParamName>
<ParamName>CELL</ParamName>
</CTCap>
<SyncCap>
<SyncType>1</SyncType>
<SyncType>2</SyncType>
<SyncType>3</SyncType>
<SyncType>4</SyncType>
<SyncType>5</SyncType>
<SyncType>6</SyncType>
</SyncCap>
</DataStore>
</DevInf>
</Data>
</Item>
<CmdRef>3</CmdRef>
<CmdID>4</CmdID>
<Meta>
<Type xmlns="syncml:metinf">application/vnd.syncml-devinf+xml</Type>
</Meta>
<TargetRef>./devinf12</TargetRef>
</Results>
</SyncBody>
</SyncML>
Et voici ce que le client envoie:
<?xml version="1.0"?>
<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd">
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncHdr>
<VerDTD>1.2</VerDTD>
<VerProto>SyncML/1.2</VerProto>
<SessionID>14</SessionID>
<MsgID>2</MsgID>
<Target>
<LocURI>http://localhost:8880</LocURI>
</Target>
<Source>
<LocURI>IMEI:356406027185460</LocURI>
</Source>
<Meta>
<MaxMsgSize xmlns="syncml:metinf">10000</MaxMsgSize>
</Meta>
</SyncHdr>
<SyncBody>
<Status>
<CmdID>1</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>0</CmdRef>
<Cmd>SyncHdr</Cmd>
<TargetRef>IMEI:356406027185460</TargetRef>
<SourceRef>http://localhost:8880</SourceRef>
<Data>200</Data>
</Status>
<Status>
<CmdID>2</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>4</CmdRef>
<Cmd>Results</Cmd>
<Data>415</Data>
</Status>
</SyncBody>
</SyncML>
Juste une note mettre meta dans/hors de l'élément ne change rien. Je suis fondamentalement perdu à ce stade ..
Merci pour cela, mais en fait, nous sommes allés avec le serveur SyncML de synthèse et vient d'écrire plugin java qui communique avec notre système à nos conditions. Cela fonctionnait beaucoup mieux que la mise en œuvre du protocole lui-même. – Engrost