php
  • curl
  • response
  • 2012-04-24 8 views 0 likes 
    0

    私はcURLを使用して別のWebサーバにリクエストを送信しています。cURL:ハンドルレスポンス:行ベースのテキストデータ

    これは私がセットアップに使用しているコードで、リクエスト送信:

    function currentStatePlaying($ip){ 
    $url = "http://".$ip."/?track=ginfo"; 
    $agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_VERBOSE, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    $result = curl_exec($ch); 
    curl_close($ch); 
    echo $result; 
    } 
    

    を私は私が必要な応答を見ることができるのwiresharkで作られたnetworkcaptureを見たときに結果が、空であることに気づきます。 httppacketの中に行ベースのテキストデータとして埋め込まれています:text/html

    私の質問は どのようにすればこのデータにアクセスできますか?

    EDIT:ここ は私のパケットのスクリーンショットです:

    +0

    ヘッダー内の応答は何ですか? cURLからデバッグ情報を追加できますか(そこに表示されていれば)? –

    +0

    @Jackスクリーンショットを追加しましたが、カールからデバッグ情報を取得する方法がわかりません – Tobrun

    +0

    不正な形式のレスポンスのようです。ヘッダーは2つの新しい行で終了しますが、1つしか見えません。それが問題の根源だと思われます。 –

    答えて

    1

    サーバーからの応答が適切に形成されていません。 (

    HTTP/1.0 200 OK\r\n 
    Content-Type: text/html\r\n 
    \r\n 
    The content goes here 
    

    すでにcURLの中にデバッグモードを有効にしているcurl_setopt(CURLOPT_VERBOSE, 1)持つことにより、おそらくあなたはまた、応答を変更することができないなら、私に知らせてくださいcurl_setopt(CURLOPT_STDERR, "php://output")

    を持っている必要があります。それはこのようなものでなければなりませんそれはかなり悪いです)。

    +0

    応答ありがとう – Tobrun

    関連する問題