[Haskell-beginners] Network.Curl.Opts problem (may show up on haskell-cafe as well)
Patrick LeBoutillier
patrick.leboutillier at gmail.com
Sat Jan 15 03:24:59 CET 2011
Michael,
I don't know much about Curl, but it looks like your HTTP headers are
not formatted correctly ("HEADER_NAME: VALUE"). Maybe you can try
adding colons like this:
CurlHttpHeaders
[ "Accept: text/javascript, text/html, application/xml, text/xml, */*"
, "Accept-Language: en-us,en;q=0.5"
, "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"
, "Keep-Alive: 115"
, "Connection: keep-alive"
, "X-Requested-With: XMLHttpRequest"
, "X-Prototype-Version: 1.6.0.3"
]
Patrick
On Fri, Jan 14, 2011 at 8:12 PM, Michael Litchard <michael at schmong.org> wrote:
> Reposting this, as it seems my Haskell Cafe posts for the past few days
> aren't making it to the list.
>
>
> I'm having trouble passing header strings properly, and I'd like some advice
> on how to proceed. Below is a capture of what is being sent, versus what I
> am trying to send. I won't include all code, only what I think is necessary.
> If I have omitted something important, please let me know. How could I
> discover what the cause of the discrepancy is?
> Thanks again for any feedback.
>
>
> Here's a snippet from the header, what is being sent.
>
>> GET
>> /resourceList.do?form=webForwardsForm&readOnly=false&policyLaunching=true&resourcePrefix=webForwards&path=%2FshowWebForwards.do&messageResourcesKey=webForwards&actionPath=%2FresourceList.do
>> HTTP/1.1
> User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
> Host: 172.16.1.18
> Accept: */*
> Accept-Encoding: gzip,deflate
> Referer: https://172.16.1.18/showWebForwards.do
> Cookie: domainLogonTicket=SLXa10225c6e8389b3eb181e3df5dcf08de;
> logonTicket=SLXa10225c6e8389b3eb181e3df5dcf08de;
> lbTrack=OAIAGHMWQDOLYYTJEXQHXBYPXVALXNREKIHAYYRZSOGYJLUYNNCJ--------;
> SSLX_SSESHID=bvgx4mggmy6v
>
> ^ compare this to CurlHttpHeaders
>
> Here's the part of the source I think is relevant
>
>> launch :: String -> String -> IO (Either String String)
>> launch user pass = do
>> -- Initialize Curl
>> curl <- initCurl
>
>> -- Sequence of steps
>> let steps = do
>> curlResp curl urlInitial method_GET
>> curlResp curl urlLogin $ loginOpts user pass
>> curlResp curl urlFlash1 method_GET
>> curlResp curl urlFlash2 method_GET
>> curlResp curl urlGetResource resourceOpts <---- here's where the
>> problem is revealed
>
>> runErrorT steps
>> main :: IO ()
>> main = do
>> -- username and password
>> user:pass:_ <- getArgs
>
>> -- Launch webpage
>> resp <- launch user pass
>
>> -- Response comes as Either String String
>> -- You have to handle each case
>> case resp of
>> Left err -> print err
>> Right body -> putStrLn body
>
>
>
>> resourceOpts :: [CurlOption]
>> resourceOpts =
>> [ CurlHttpHeaders
>> [ "Accept text/javascript, text/html, application/xml, text/xml, */*"
>> , "Accept-Language en-us,en;q=0.5"
>> , "Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7"
>> , "Keep-Alive 115"
>> , "Connection keep-alive"
>> , "X-Requested-With XMLHttpRequest"
>> , "X-Prototype-Version 1.6.0.3"
>> ]
>> , CurlEncoding "gzip,deflate"
>> , CurlReferer "https://172.16.1.18/showWebForwards.do"
>> ]
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
>
--
=====================
Patrick LeBoutillier
Rosemère, Québec, Canada
More information about the Beginners
mailing list