[PHP] XML-Transfer vom Client zu Webserver

Dieses Thema im Forum "Webentwicklung" wurde erstellt von °EraZoR°, 26. Juni 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 26. Juni 2010
    XML-Transfer vom Client zu Webserver

    Hey,

    ist zwar jetzt nicht direkt auf PHP bezogen.. Ich habe den Netzwerktraffic vom iPhone-App Tapatalk mitgeschrieben.. Mit Wireshark:
    Spoiler
    Code:
    POST /mobiquo/mobiquo.php HTTP/1.0
    Host: poultrykeeperforum.com
    User-Agent: Mozilla/5.0 Firefox/3.5.6
    Cookie: PHPSESSID=mk1m6q2ht0icfh5jq9tupld5l0
    Content-Type: text/xml
    Content-Length: 80
    Accept: */*
    Accept-Language: de-de
    Accept-Encoding: gzip, deflate
    Via: 1.1 laptop:1234 (squid/2.7.STABLE7)
    X-Forwarded-For: 192.168.xx.xx
    Cache-Control: max-age=259200
    Connection: keep-alive
    
    <?xml version="1.0"?><methodCall><methodName>get_forum</methodName>/methodCall>HTTP/1.1 200 OK
    Date: Fri, 25 Jun 2010 16:37:17 GMT
    Server: Apache
    X-Powered-By: PHP/5.2.9
    Mobiquo_is_login: false
    Content-Encoding: gzip
    Vary: Accept-Encoding
    Set-Cookie: phpbb3_838q7_u=1; expires=Sat, 25-Jun-2011 16:37:18 GMT; path=/; domain=.poultrykeeperforum.com; HttpOnly
    Set-Cookie: phpbb3_838q7_k=; expires=Sat, 25-Jun-2011 16:37:18 GMT; path=/; omain=.poultrykeeperforum.com; HttpOnly
    Set-Cookie: phpbb3_838q7_sid=efcbacadb491f0b53b8a09aa6098a623; expires=Sat, 25-Jun-2011 16:37:18 GMT; path=/; domain=.poultrykeeperforum.com; HttpOnly
    Content-Length: 2052
    Keep-Alive: timeout=2, max=100
    Connection: Keep-Alive
    Content-Type: text/xml; charset=UTF-8
    
    ...........]ms......bk.....7V9..\i.6..#o_R.....,....{.4a&...i.2.....i.~x....q..CL....,J.......~.......[~R..|.../......~.J....+w...a........]..-.K..}:......8........W.K.E|..a...~6\.J......W........C................3..~...|uX.gx..r.r^...........+..ii..7...0......w.
    N.$.r.(......q..f.Ns.......)....u.}}^.>Vx7iB./.G<a>8.....s...X..%..y...-1.`...c]s]..k..V.\..0...D..fN.K.8..z..8.<
    M.R....ll..T.....Z8#eg[w....C..k..o.Dxm......k..q.gxv..e:.q..+....T{m..^.....-h.....dP.h.l.?]Do].(.}.A..Z.A.W.......7.....<.n.....B.M..6g..7..WX..X...R....z.u..%'..:...1.E.O...g...:OX...b....._(......i....vMO.....^UX.\....ZI.../.pC................RO&+/.u..p....\H....... J...x...l....Yq1a...G81._.......0..bi.}.y......|B.y...N.BQA..0.a-V....C.-.O..CR...;.x....!..Z./...ll1z.!.Y..r..p..+R.d..&-44.1.8k.\.;8'..2 ONZD.y..P.....e.z1w...6wLC.....%.....X..v..qC.'.=j....qHm.Ap?4...{
    ..;R6N..K'.=.._......Z..f.....3R.....O>...-...JD......%.4,....v..*......I.&...i>..(....../Eu$......o..Y.....)V"...yepL...a2.<i........r+u..F.6.n!...1v....d.".*@.S..1T..S...6/j......W......x....S4..o...TF...\......IB/...9D..}QY.u.r...m.r>.a..9@,....N.....'.N..uX{3..q.98O%....br6D.oi..U.4..6U.\.......E...V:.9.R.5a.b...4..P.....6!.C..m]....3b.G$.....'..~0.(...DY..*f..$...\.wL..mN7,.T#.11gk.w.tvZr.u'|..|..C..l.V.t6...T..q.......cC...|V
    ....gb....;.zDE.S.f..f.N:...!<+.Zv..5!2.G.YU.......S{}....BgR.:.vs...c..2..........K.v~[.....&.m.......j.~..K...+.[.r=...a...`.......5...B`.9H..L.......]yW.......h..#NvMxv..hF3........5.(..@...r...>s..32=..|..:X......<.._Y......f...8.........ch.....K...A.....U0O..1u...`.).8..K.A..V...M.. C/Rd.|..$....i.V...Y......g.......7T..h.A.M...u.....)_b....0.).aK.6.V`..e..=......'O..>.*|6.v.<3g..?.....5..ki..k.s..u".C..K....+........g.....U..d....k......q-...D@..4...R..p...*G.7.....*z..+...R..2ow....Xc.....!..e..`.r...Y..l.iHF.%....;.)3.zlP.Ma.f\)..v.e...CA..i.W)4......4..0O.i..6&..)..EG"......zU4.......58DR.....'wp....u...3.....)]/^.n.jn.v9[.|...:s...|........5......+;.W..V.2B 1V.X..V=.g..ddw.M........~..w.....g]a.........o:.JL..wcz_...?.hB..f..

    Das ist der gesamte Traffic..
    Dabei wurden halt folgende XML-Daten an den Server geschickt:
    HTML:
    <?xml version="1.0"?><methodCall><methodName>get_forum</methodName>/methodCall>
    Mich interessiert jetzt, wie das App die Daten sendet.. Bzw. wie man das mit PHP oder auch andern Programmen machen kann..
    Die Daten werden dann halt von einem Script verarbeitet und es wird etwas zurückgegeben..
    Aber das ist erstmal egal..

    Ich will nur wissen, wie man diese XML-Daten an den Server senden kann.. Weil es sind ja im Prinzip kein POST-Daten, weil da wäre ja normalerweise noch zB 'name=' vor?!

    MfG
     
  2. 26. Juni 2010
    AW: XML-Transfer vom Client zu Webserver

    Naja doch die Nachricht wird ja per POST übersendet, ...lediglich der Content/Type ändert sich wie du oben lesen kannst ...
    Daraus wird dann : Content-Type:text/xml

    Wie die Daten übermittelt werden liegt letzten endes am Header des Requests.
    Ich bin kein Experte auf dem Gebiet aber so würde ich jedenfalls denken ;-)
     
  3. 26. Juni 2010
    AW: XML-Transfer vom Client zu Webserver

    tach. man kann XML dateien posten, das geht eigl. schon immer ^^

    die xml-daten kannst du so auslesen:
    PHP:
    $xml  file_get_contents ( 'php://input' );
    wie genau die sachen gepostet werden entscheidet sich durch den Content-Type header.
    multipart/* <- damit hast du in php dann $_POST zur verfügung. ansonsten musst du stdin auslesen und je nach typ die sachen selber valdieren (in diesem fall xml).

    das kann auch so ausehen:
    Code:
    Host: localhost
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 115
    Connection: keep-alive
    Cache-Control: max-age=0
    Content-type: image/png
    
    name-des-bildes.png|base64-string
    PHP:
    <? php
    header
    ( 'Content-Type: text/plain' );
    $input  file_get_contents ( 'php://input' );
    list(
    $name $data ) =  explode ( '|' $input 2 );

    print 
    'name: '  $name  "\n" ;
    print 
    'data: '  $data ;
    ergebnis:
    Code:
    name: name-des-bildes.png
    data: base64-string
    nachteil: keine leerzeichen möglich
     
  4. 26. Juni 2010
    AW: XML-Transfer vom Client zu Webserver

    Jop, danke..
    Hab mir jetzt ein kleines Script geschrieben
    PHP:
    <? php
    set_time_limit
    ( 1 );
    function 
    PostToHost ( $host $port $path $postdata $filedata ) {
         
    $data  "" ;
         
    $fp  fsockopen ( $host $port );

         
    fputs ( $fp "POST  $path  HTTP/1.0\n" );
         
    fputs ( $fp "Host:  $host \n" );
         
    fputs ( $fp "Content-type: text/xml; \n" );

         
    // Ab dieser Stelle sammeln wir erstmal alle Daten in einem String
         // Sammeln der POST Daten

         // Sammeln der FILE Daten
         
    $data  .=  "Content-Type: text/xml\n" ;
         
    $data  .=  $filedata [ 2 ]. "\n" ;
                                                
         
    // Senden aller Informationen
         
    fputs ( $fp "Content-length: " . strlen ( $data ). "\n\n" );
         
    fputs ( $fp $data );

         
    // Auslesen der Antwort
         
    while(! feof ( $fp )) {
             
    $res  .=  fread ( $fp 1 );
         }
         
    fclose ( $fp );

         return 
    $res ;
    }

    $postdata  = array();
    $data  file_get_contents ( 'test.xml' );
    $filedata  = array( '' 'test.xml' $data );
    echo 
    "<pre>" ;
    echo 
    PostToHost  ( "192.168.0.138" 80 "index.php" $postdata $filedata );
    ?>
    Ansatz hab ich hier gefunden: http://www.coder-wiki.de/HowTos/PHP-POST-Request-Datei

    Ich mach erstmal zu, bis ich neue Probs finde^^
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.