客户端发来的httpheader,然后后面就是xml。像这样:
POST /cm/portalapi HTTP/1.1Host: 111.140.17.43:28080Cookie: JSESSIONID=C3E17C85AED6C57B658CC7F27AE68BBD; Path=/cmreadContent-Length: 178Content-Type: application/xmlClient-Agent: s60_v3_v1r2_0030/240*320x-up-calling-line-id: 13888888888user-id: a15ba9b5458ec3e3caa8909d84113674APIVersion: 1.0.0Action: addUserBookClientHash: 0sEicJNzReY/EU8dxXpBgA==
<Request><AddUserBookReq><Book><contentID>92357 </contentID><chapterID>92366 </chapterID><position>37 </position></Book></AddUserBookReq></Request>
我怎么首先获取这个xml呢,

解决方案 »

  1.   

    echo file_get_contents("php://input");
      

  2.   

    用这个好像都不到啊,你看我这样获取解析对吗
    $strXML=file_get_contents("php://input");
                  
                  $doc = new DOMDocument();
                 
                  $doc->load($strXML);
      

  3.   

    写程序不要相当然,这是我经常说的一句话.
    你首先要找出不能的原因.
    1 echo $strXML;
     看看是否获取了xml
    2 $doc->load($strXML);这是错的,load()是用来从文件中获取的,如果是字符串,要用loadXML();
      

  4.   

    echo不能显示啊,你看我这边哪错了呢 $strXML=file_get_contents("php://input");
                 // echo $strXML; 
                  $doc = new DOMDocument();
                  //$xml = simplexml_load_string($strXML);
                  $doc->loadXML($strXML);
                 
                  $Books = $doc->getElementsByTagName("Book");
                  $contentIDs = $Books->getElementsByTagName("contentID");
                  $contentIDz = $contentIDs->item(0)->nodeValue;              $chapterIDs = $Books->getElementsByTagName("chapterID");
                  $chapterIDz = $chapterIDs->item(0)->nodeValue;              $positions = $Books->getElementsByTagName("position");
                  $positionz = $positions->item(0)->nodeValue;
      

  5.   

    一楼就是我抓包看到的东西,客户端发过来的,我现在要获得这个xml,并进行解析,现在不知道怎么才能获得这个xml
      

  6.   

    要知道对方是如何发的,才能做测试
    你用抓包软件只能知道对方确实是发了,但与php并无关系
      

  7.   

    正理,需要客户端将数据post到你的接收程序里.