3

https サーバーに POST リクエストを送信したい。

$data = 'name=value&name1=value1';

$options = array(
  'method' => 'POST',
  'data' => $data,
  'timeout' => 15,
  'headers' => array('Content-Type' => 'application/x-www-form-urlencoded'),
);

$result = drupal_http_request('http://somewhere.com', $options);

上記の POST サンプル コードで https オプションを実装する方法がわかりません。

誰でもこれを行う方法を説明してもらえますか? 私は Drupal を使用した PHP コーディングにまったく慣れていませんが、ガイダンスを確実に使用できます。

必要なのはプロトコルに設定することだけであることがわかりました。だから私はこのコードにたどり着きました。

$data = 'access_token=455754hhnaI&href=fb&template=You have people waiting to play with you, play now!';

$options = array(
  'method' => 'POST',
  'data' => $data,
  'timeout' => 15,
  'headers' => array('Content-Type' => 'application/x-www-form-urlencoded'),
);

$result = drupal_http_request('https://graph.facebook.com/1000721/notifications?', $options);

それでもうまくいきません。Firefox経由で投稿するhttps://graph.facebook.com/1000080521/notifications?access_token=45575FpHfhnaI&href=fb&template=You have people waiting to play with you, play now!と動作します。

Drupal でリクエストを適切に構築していない可能性があります。

私は何を間違っていますか?コードを機能させるにはどうすればよいですか?

4

1 に答える 1

8

drupal_http_request()安全な接続 (https://) を使用する場合と使用しない場合 (http://) に違いはありません。

PHP は、OpenSSL をサポートするようにコンパイルする必要があります。それ以外の場合、drupal_http_request()安全な接続はサポートされません。それとは別に、唯一の問題は、プロキシ サーバーが安全な接続をサポートしていない可能性があります。

補足としてhttps://graph.facebook.com/1000721/notifications?、リクエストの URL として使用しています。クエスチョン マークを URL に含めないでください。

また、drupal_http_build_query()を使用して、リクエストに使用するデータを構築します。

$data = array(
  'access_token' => '455754hhnaI',
  'href' => 'fb',
  'template' => 'You have people waiting to play with you, play now!'
);

$options = array(
  'method' => 'POST',
  'data' => drupal_http_build_query($data),
  'timeout' => 15,
  'headers' => array('Content-Type' => 'application/x-www-form-urlencoded'),
);

$result = drupal_http_request('https://graph.facebook.com/1000721/notifications', $options);
于 2012-12-18T06:42:55.330 に答える