01. september 2003 - 17:21Der er
9 kommentarer og 1 løsning
XML Response hvad og hvordan ?
Jeg skal sende en xml streng til en applikation og jeg får en xml streng retur. Jeg har ingen forstand på xml, så jeg har brug for hjælp ???
Her er kort hvad jeg har lavet:
ConnectToXMLInterface(string hostname, int port); {Denne metode er færdig og virker}
Følgende metode er hvad jeg lige kan komme på af ideer til at sende en xml streng, men jeg aner ikke om det er rigtig det jeg laver og hvis det er, hvordan fanger jeg den response der skulle komme ?????
Hvad skal du sende til? Er det en webrequest (er det i så fald en get eller post?), eller er det en applikation der bruger en eller anden protokol (og i så fald hvilken?)
yes. jeg har et array bestående af bytes, så længden på det array må nødvendigvis det samme som antallet af bytes.. så derfor skal linje se således ud: sock.Send(ByteGet,ByteGet.Length,0); men jeg får stadig ikke nogen response fra min applikation :-(
jeg roder videre med det - alle forslag er mere end velkomne
Jeg mener at enten skal du lave en callback function som kaldes når der kommer et svar, eller også skal du lave en thread.sleep, inden du begynder at receive. Du må jo regne med at der går lidt tid før serveren svarer.
jeg har roder lidt videre med det og lavet en anden metode. Her er lidt mere info og min nye metode som desværre heller ikke virker:
Jeg skal forbinde til en applikation via tcp/ip på port 6666, hvilket ikke er noget problem.
Herefter skal jeg sende en XML-streng, men inden jeg sender strengen skal jeg sende nogle andre ting:
1) først skal jeg sende en byte som er et 3 tal (det er hvad jeg har fået at vide om jeg ved ikke om jeg fortolker det korrekt) Problemet er løst sådan her: byte abyte = 3; m_out.Write(abyte);
2) herefter skal jeg sende længden i byte på den xml streng jeg vil sende og dette problem har jeg løst sådan har: string XML_string = "<xml><OpCode>0</OpCode><MsgId>0</MsgId><User>Admin</User><Password>Admin</Password></xml>"; Byte[] ByteGet = ASCII.GetBytes(XML_string); m_out.Write(ByteGet.Length);
3) til sidst sendes indholdet af XML-strengen i form af (et Byte[], længden på dette array, og count 0 - ved ikke hvad det betyder)
Som response på dette skulle jeg gerne få en XML streng retur
BinaryReader m_in = new BinaryReader(networkStream); Byte[] RecvBytes = new byte[256];
int bytes = m_in.Read(RecvBytes, 0, RecvBytes.Length); /Denne linje får server til at dø med en out of memoryerror string strRetPage = null; strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
Hvor ville det dog være nemt, hvis din serviceprovider i stedet tilbød en ægte webservice som fulgte de gældende standarder :-) Har du overvejet at lave dit problem til din serviceproviders problem? Du kan jo bare spørge hvorfor man ikke følger standarderne :)
ja det har jeg i høj grad.. det er sgu fustrerende - men det kan ikke være anderledes.. der er ingen der kan hjælpe med dette her, fpr deres lorteapplikation kræver endnu flere specielle ting.. har lige snakket med dem igen..
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.