特定のヘッダー、Cookie、およびフォーム値を使用してリクエストを実行したいと考えています。これが私がやっている方法です:
import Network.HTTP.Conduit
import Network.HTTP.Types
--.......omitted
configReq r = r { method = methodPost
, requestHeaders = (requestHeaders r) ++ [
(DS.fromString "Referer", DS.fromString "https://server...."),
(DS.fromString "SomeHeader2", DS.fromString "fdsfdsfds")
]
, requestBody = RequestBodyLBS (Aeson.encode $ Map.fromList [("email", "my@mail.com"), ("password", "7890")])
, secure = True
, cookieJar = [myCookie]
}
これはうまくいくようです。しかし、サーバーが返されるため、そうではありません400
->"X-Response-Body-Start","Invalid input."
電子メールとパスワードが何であれ。これはそれ自体で何かを実行するリクエストではないことに注意してください。これは認証リクエスト (「ログイン」ボタンをクリックしたときに送信するものと同じ) であるため、値email
とpassword
フォームの値 (その/login
ページと同じ) があります。
フォームの値 email
とpassword
がリクエストに含まれていても、それらは別の方法で設定する必要があると思います。つまり、それらは別の場所にある必要がありますrequestBody
。
今のところ問題は、どこに置く必要があるか、そうでない場合はどこに置くemail
かpassword
ということrequestBody
です。