17

PHPとcurlを使用してWebサーバーにリクエストを送信しようとしています。私はこれまでにこのようなことをしたことがなく、オンラインには多くの素晴らしい例がありますが、いくつかのcurlコマンドを理解するのに苦労しています.

これが私がやりたいことです: 確立された Web サービス (例: Web マップ サービス) があり、PHP コードでこのサービスにポスト XML 要求を送信したいと考えています。応答として、XML ファイルを取得したいと考えています。

これは私が今まで持っているものです:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, ''); 
    /*curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));*/
    /* curl_setopt($ch, CURLOPT_HEADER, 0);*/
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
    /*curl_setopt($ch, CURLOPT_REFERER, '');*/
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $ch_result = curl_exec($ch);
    curl_close($ch);
    echo $ch_result;

私が言ったように、私はphpとcurlの使用にかなり慣れていないので、いくつかの概念が欠けていると思います。私の質問は次のとおりです: 1) 私が入れなければならない文字列 (リンク) は何ですか:

          curl_setopt($ch, CURLOPT_URL, ''); 

リクエストを送りたいサービスのホスト名ですか?

2) 6 行目の変数 $xml には、リクエストとして送信する xml ファイルが含まれています。それは正しいですか、それともこの変数には何か他のものが含まれているはずですか?

3) httpheader またはヘッダー (row3 と row4) を使用する必要があるのはどのような場合ですか?

助けてくれてありがとう。ディミトリス

4

2 に答える 2

33

このようにしてみてください:

  $url = 'https://android.googleapis.com/gcm/send';
  $ch = curl_init();
  curl_setopt( $ch, CURLOPT_URL, $url );
  curl_setopt( $ch, CURLOPT_POST, true );
  curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
  curl_setopt( $ch, CURLOPT_POSTFIELDS, "<xml>here</xml>" );
  $result = curl_exec($ch);
  curl_close($ch);

詳細については、http: //php.net/manual/en/function.curl-setopt.phpをご覧ください。

于 2013-03-28T10:25:40.130 に答える
-1

HTTP リクエストを作成するには、HTTP クラスを使用する方が適していると思います。

http://www.php.net/manual/intro.http.phpを参照してください。

また、PHP 用の特定の WMS ライブラリもあります

于 2013-03-28T10:18:14.570 に答える