私はゲッターコンテキストを持っています:HTTP :: Server :: Contextとログインフォーム。
今、context.request.bodyのデータを解析して、ユーザーが入力したユーザー名とパスワードを取得します。
POSTリクエストからデータをパースする方法
応答のコンテンツの種類:アプリケーション/ x-www-form-urlencodedで
私はゲッターコンテキストを持っています:HTTP :: Server :: Contextとログインフォーム。
今、context.request.bodyのデータを解析して、ユーザーが入力したユーザー名とパスワードを取得します。
POSTリクエストからデータをパースする方法
応答のコンテンツの種類:アプリケーション/ x-www-form-urlencodedで
HTTP::Params.parse
は、あなたが探しているものです:
# Based on the sample code in https://crystal-lang.org/ home
require "http/server"
server = HTTP::Server.new(8080) do |context|
context.response.content_type = "text/plain"
if body = context.request.body
params = HTTP::Params.parse(body)
context.response.print "Hello #{params["user"]? || "Anonymous"}!"
else
context.response.print "You didn't POST any data :("
end
end
puts "Listening on http://127.0.0.1:8080"
server.listen
ありがとうございます。 –
実際にはルーティング用にcrouterを使用していますが、HTTP :: Paramsを使用してrequest.bodyを解析しようとしましたが、エラーが発生します:タイプが「HTTP :: Params.parse」に一致しています。 私の間違いは、crouterが既にparams変数を持っていて、ボディデータを取得するために、あなたが行ったようにparams ["user"]を使うだけで、データを再度解析する必要はありません。 –
えええええええええええええええええええええええええええええええええええええええええええええええええええええええええんさんは、これらのオプションの解析が、これは "実践的"なアプローチです。フレームワークはおそらくこの機能を呼び出すことになります。喜んで、とにかく助けた:) – mgarciaisaia
あなたがこれまでにしようとしているものを投稿してください。 –
私はHTTP :: Paramsを使ってrequest.bodyを解析しようとしましたが、結果はnilです。 –
あなたは私たちに応答のコンテンツタイプを教えておらず、[ここではJSON応答を解析する方法を見ることができます](http://stackoverflow.com/q/32552291/641451)。 – mgarciaisaia