php
  • xml
  • curl
  • 2013-04-18 30 views 3 likes 
    3

    我想改變在PHP的XML值,但不改變....PHP - 在服務器端捲曲HTTP認證

    <?php 
    
    $url = "http://192.168.1.103:8080/ew.xml"; 
    $xml = '<?xml version="1.0" ?> 
    <DDCConfig:getValue xmlns:DDCConfig="urn:SMUDDCConfiguration"> 
    <DDCConfig:Network> 
    <DDCConfig:LocalIP>192.168.103.223</DDCConfig:LocalIP> 
    <DDCConfig:GlobalIP>168.188.127.123</DDCConfig:GlobalIP> 
    <DDCConfig:RootBridge>Yes</DDCConfig:RootBridge> 
    </DDCConfig:Network> 
    </DDCConfig:getValue>'; 
    
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 
    curl_setopt($ch, CURLOPT_USERPWD, "lmk:alrud89"); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_URL, "$url"); 
    curl_setopt($ch, CURLOPT_PORT, 8080); 
    curl_setopt($ch, CURLOPT_PUT, 1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS,array($xml)); 
    $http_result = curl_exec($ch); 
    if($http_result){ 
    echo $http_result; 
    }else{ 
    echo curl_error($ch); 
    } 
    
    curl_close($ch); 
    ?> 
    

    錯誤消息

    *關於連接()到192.168.1.103端口8080(#0) *試圖192.168.1.103 ...
    *使用基本與用戶 'LMK' 連接
    *服務器AUTH
    > PUT /ew.xml HTTP/1.1
    >授權:基本bG1rOmFscnVkODk =
    >主機:192.168.1.103:8080接受:/
    >傳輸編碼:分塊
    >期望值:100繼續
    < HTTP/1.1 401未授權
    <內容-length:0
    <
    > WWW驗證:摘要QOP = 「AUTH」,境界= 「mydomain.com」, 隨機數= 「1366254379」
    * HTTP錯誤發送的結束之前,停止發送
    *期末連接#0

    是什麼問題&解決方案?

    +0

    是否有任何東西在該IP上監聽? – 2013-04-18 03:17:53

    +0

    我可以看到蝙蝠權利的一件事(與您的認證錯誤不直接相關)是您未傳遞POST_FIELDS的關聯數組。您的POST數據是XML,但它也需要有一個名稱。 – AgilE 2013-04-18 03:19:43

    +0

    @Dagon是的,否則他會得到錯誤404 – alfasin 2013-04-18 03:26:13

    回答

    2

    您的憑據不正確! (這就是錯誤401的意思)

    Firefox有一個非常棒的插件叫做poster - 安裝它並使用它來仔細檢查請求格式是否正確。

    順便說一句,你可能要添加以下標題:

    curl_setopt ($ch, CURLOPT_HTTPHEADER, Array("Content-Type: application/xml")) 
    

    另一件事:PUT並不總是支持,嘗試POST - 有時它會工作。

    +0

    ,但該URL&ID&通過從我的服務器... – user2235070 2013-04-18 03:29:09

    +0

    @ user2235070你得到了相同的響應海報? – alfasin 2013-04-18 03:30:16

    +0

    哦,你是對的。我改變'POST'而不是'PUT'..它的工作原理! – user2235070 2013-04-18 04:17:00

    相關問題