0

私が開発しているWebAPIの場合、FacebookGraphAPIと同様のことをしたいと思います。ユーザーは別のユーザーを招待できます。招待を承認または拒否するには、他のユーザーは次の宛先に空のPOSTを実行する必要があります。

/invitation/<invitationId>/accepted

また

/invitation/<invitationId>/rejected

ただし、空のデータをPOSTすると、PHP(またはApache?)が次のエラーを返すため、これは機能しません。

エンティティが大きすぎるリクエスト!

POST方式ではデータの送信が許可されていないか、データ量が容量制限を超えています。

POSTデータが空であるため、これは明らかに当てはまりません(Firebugでダブルチェックしました)。だから私の質問は:

  • HTTPプロトコルは空のデータのPOSTを許可しますか?そうでない場合は、ダミーデータを投稿するだけだと思いますが、この種のハッキングは避けたいと思います。

  • 許可されている場合、Apache / PHPでリクエストを許可するにはどうすればよいですか?

4

2 に答える 2

0

ある種のRESTfulAPIを実行したいと思うので、データなしで投稿を送信する必要があります。

Apache / phpを使用すると、空の投稿データを送信できます。使用しているフレームワークの一部のサーバー構成によって制限を課す必要があります。

この単純なファイルでこれをテストできます。

<?php

echo '<h2>This page was requested using ' . $_SERVER['REQUEST_METHOD'] . '</h2>';
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
<form action="" method="post">
    <input type="submit" value="Request this page using POST" />
</form>

_POST配列がempyであっても、スクリプトが(_SERVERスーパーグローバルからのREQUEST_METHODを使用して)POSTリクエストを検出することがわかります。

于 2012-04-10T08:17:03.650 に答える
-1

なぜPOSTリクエストを行うのですか?APIにデータが送信されたかどうかを検出させ、データがない場合はGETリクエストを作成します。実際、ブラウザはその情報をより簡単にキャッシュできるため、ほとんどの場合GETリクエストを作成します(キャッシュ固有のヘッダーを送信することで、APIをスマートにしてそれを利用できます)。

あなたの場合、POSTリクエストを行う意味はありません:)

于 2012-04-10T07:06:13.417 に答える