私はPerlバックエンドを使ってFacebookブックを作成しています。問題は、FacebookがPOSTリクエストとして私のWebアプリケーションにリクエストを送信するので、アプリケーションのベースURLの一部でもあるGETパラメータを取得することに問題があることです。実際には、POSTパラメータを取得するだけです$ CGI-> Varsから。POSTリクエストでGETリクエストとPOSTリクエストの両方のパラメータを取得するにはどうすればよいですか?
1
A
答えて
13
CGI/MIXING POST AND URL PARAMETERSを参照してください。
ショートバージョン:ポストパラメタには$CGI->param()
、クエリ文字列パラメータには$CGI->url_param()
を使用します。
5
より良いインターフェイスのためにCGIをダンプします。 Plackのparam
メソッドは、GETとPOSTのパラメータを混合して返します。
plackup -MPlack::Request -e 'sub {
my ($env) = @_;
my $r = Plack::Request->new($env);
return [200, ["Content-Type" => "text/plain"], [join "\n", $r->param("foo")]];
}'
> lwp-request -m POST -USe 'http://localhost:5000/fnord?foo=bar;baz=quux'
Please enter content (application/x-www-form-urlencoded) to be POSTed:
foo=123;baz=456
␄
POST http://localhost:5000/fnord?foo=bar;baz=quux
User-Agent: lwp-request/6.03 libwww-perl/6.03
Content-Length: 16
Content-Type: application/x-www-form-urlencoded
200 OK
Date: Thu, 27 Oct 2011 21:27:46 GMT
Server: HTTP::Server::PSGI
Content-Length: 7
Content-Type: text/plain
Client-Date: Thu, 27 Oct 2011 21:27:46 GMT
Client-Peer: 127.0.0.1:5000
Client-Response-Num: 1
bar
123
+0
+1 plack/lwpソリューションの共有 – qodeninja
関連する問題
- 1. Symfony GETリクエストとPOSTリクエストの両方を手動で提出する
- 2. POSTリクエストはGET
- 3. ios5からのGETリクエストとPOSTリクエスト
- 4. POSTリクエストからパラメータの名前を取得する方法は?
- 5. Azure AppサービスでHttp getおよびpostリクエストを取得する
- 6. HTTPのPOSTのリクエストとGET
- 7. Slim rest apiでPOSTリクエストのJSONリクエスト本体にアクセスするにはどうすればよいですか?
- 8. POSTリクエストでリクエストボディからすべての「コンテンツ」を取得するにはどうすればよいですか?
- 9. POSTリクエストにGETレスポンスデータを渡す方法
- 10. HttpリクエストとPHP POST/GET VB.Net
- 11. iphoneでGET/POSTリクエストの結果をユーザーに通知するにはどうすればよいですか?
- 12. シェフのHTTPリクエストGET/POST
- 13. このHTMLフォームPOSTをPHP POSTリクエストに変換するにはどうすればよいですか?
- 14. POSTリクエストを取得Symfony 3
- 15. エクスプレスルータのルートハンドラでPUTリクエストをPOSTリクエストにリダイレクトする方法は?
- 16. JettyはPOSTリクエストをGETリクエストに変換します
- 17. POSTリクエストからCookieを取得するにはどうすればよいですか?
- 18. Flask-Login POSTリクエストはログイン後にGETリクエストに変わります
- 19. PHPでPOSTリクエストのサイズを取得
- 20. GETリクエストではなくPOSTリクエストでURLにリダイレクトできますか?
- 21. GETリクエストは動作しますが、Web API 2のPOSTリクエスト404
- 22. GET/POSTリクエストGoogleドライブAPI
- 23. POSTリクエストでパラメータが空です
- 24. POSTリクエストのパラメータがテーブル
- 25. ajaxリクエストとそのPOSTデータの取得
- 26. GET/POST HTTPリクエストを取得するJavaサーバー
- 27. HTTP POSTリクエストがGETリクエストに変換される
- 28. POSTリクエストをroutes.rb内の外部GETリクエストにリダイレクトできますか?
- 29. 現在のページがGETリクエストまたはPOSTリクエストの結果であるかどうかを検出するブックマークレット
- 30. このリクエストのリストを各リクエストのステータスで取得するにはどうすればよいですか?
も問題はURLがアプリケーションの状態を追跡するためのパラメータを取得使用している、私はアイデアを取得し、ポストのparams混在させないことです推測することである - それは一部である以外RFCの標準の私はなぜこれが重要なのか理解していない - サーバ上の何も変化していない、それはちょうどどのステップを実行するのかを検出する – qodeninja
@nodebunny、なぜ重要なのでしょうか?あなたは「なぜ彼らは異なる方法で取り出されているのですか」という意味ですか? 「URLクエリ文字列の内容が、POSTされたフォームの同様の名前のCGIパラメータを妨害することはありません」。この機能は、あなたが言ったことに応じて特に重要です。 – ikegami
なぜGETとPOSTを分けておくのが重要か...しかし、私はその意味を理解していると思います。あなたは何かをGETパラメータとして設定することはできたくないし、POSTのパラメタとして扱わなければなりません。それ以外の場合はPOSTの目的を破るでしょうか?しかし私の目的のために、私は特定のパラメータだけを探しているので、私はそのミュートポイントを推測します。私が必要とするパラメータは、その取得または送信の問題ではありません。しかし、私は状況をより良く理解しています。議論のための+1 – qodeninja