2017-05-15 12 views
0

見つけたnice Scrapperはduzunで開発されましたが、私は1つの問題に直面しています。 POSTリクエストを行うにはどうしたらいいですか?私は以下のようなコードを試してみましたが、期待通りに動作していません(少なくとも私自身)。問題は、POSTデータがsend/acceptedではないことです。レスポンスはPOSTコールなし(通常の単純リクエスト)と同じです。PHP "duzun/hQuery.php" POSTリクエスト

この問題に関する多くの情報は見つかりませんでした。私がそうするのを助けてください。

use duzun\hQuery; 

hQuery::$cache_path = "/tmp/cache"; 

$data = ['topt[1][min]' => '3']; 

$headers = [ 
    'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36', 
    'Accept' => 'text/html,application/xhtml+xml;q=0.9,*/*;q=0.8' 
]; 
$doc = hQuery::fromUrl('SOME HOME PAGE', $headers, $data); 
+0

コードの開始とコードの終了を記述する必要はありません。 –

答えて

0

あなたのコードに問題はありません。 受信側のサーバーが要求を理解していない可能性がありますか? デフォルトでは、このクエリは 'content-type' == 'application/x-www-form-urlencoded'になりますが、宛先サーバーは異なる形式を予期している可能性があります。

stream_context_create()を使用して$contextを作成し、次にhQuery::fromFile($url, false, $context)を呼び出します。あなたはPOSTあなたが好きなようにする、とhQueryは、HTMLの構文解析を処理させることができ

$data = ['topt' => [1 => ['min' => '3']]]; 
$url = 'SOME HOME PAGE'; 

$postdata = http_build_query($data); 

$opts = array('http' => 
    array(
     'method' => 'POST', 
     'header' => "Content-type: application/x-www-form-urlencoded\r\n". 
        "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36\r\n". 
        "Accept: text/html,application/xhtml+xml;q=0.9,*/*;q=0.8", 
     'content' => $postdata 
    ) 
); 

$context = stream_context_create($opts); 
$doc = hQuery::fromFile($url, false, $context) 

// or 
// $html = file_get_contents($url, false, $context); 
// $doc = hQuery::fromHTML($html, $url) 

:ここ

は一例です。

関連する問題