簡體   English   中英

檢查wreq請求標頭

[英]Check wreq request headers

我對Haskell很新,我不確定如何實現這個目標。 我使用wreq作為HTTP客戶端,我想檢查哪些HTTP頭被發送到服務器。 例如,我定義了以下方法,嘗試使用Facebook憑據進行身份驗證:

authenticate ⦂ String → String → IO (Response ByteString)
authenticate facebookId facebookToken =
    postWith opts "https://api.somedomain.com/auth" (object $ ["facebook_token" .= facebookToken, "facebook_id" .= facebookId])
      where opts = defaults & header "Content-Type" .~ ["application/json"]
                            & header "Accept" .~ ["application/json"]
                            & proxy ?~ httpProxy "localhost" 9396

使用POSTman我得到了正確的響應,但是使用wreq我被禁止訪問(403)。 我假設庫可能會添加一些額外的請求標頭,這就是我想要檢查的內容。

任何提示?

編輯:http代理現在用於檢查HTTP流量(盡管未檢測到wreq請求)。

在Wreq中, Options類型是Show一個實例,因此您可以將其傳遞給print ,或者只是在ghci上檢查它:

ghci> import Network.Wreq
ghci> defaults :: Options
Options { manager = Left _, proxy = Nothing, auth = Nothing, headers = 
[("User-Agent","haskell wreq-0.3.0.1")], params = [], redirects = 10, cookies = [] }

您還可以使用headers鏡頭直接對焦於標題:

ghci> defaults ^. headers
[("User-Agent","haskell wreq-0.3.0.1")]

但是如果postWith 將選項傳遞給postWith 之后添加一些頭文件,你將不得不使用像Fiddler這樣的Web調試代理來知道發生了什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM