I look here:

https://github.com/dakrone/clj-http/issues/45

and I see the original reasoning for :trace-redirects

"add a key like :trace-redirects in the response containing the
ordered list of traversed uris. This would allow clients to know what
was the final uri fetched more easily than now (I think the only way
is to set :save-request? and check the url inside the req). It could
also be very useful for caching purpose (knowing all the uris which
are equivalent to the terminal one). "

The README says: ":trace-redirects will contain the chain of the
redirections followed."

But in my case, I don't think I'm getting redirected. My :trace-
redirects only has 1 URL, and it is the URL that I POSTed to.

[:trace-redirects ["https://api2.omniture.com/admin/1.3/rest/?
method=Report.QueueOvertime"]] [:request-time 1601][:status 200]
[:headers {"date" "Tue, 05 Mar 2013 19:57:24 GMT", "server" "Omniture
AWS/2.0.0", "vary" "Accept-Encoding", "content-encoding" "gzip",
"xserver" "www503", "content-length" "83", "content-type" "application/
json", "connection" "close"}][:body "{\"status\":\"queued\",\"statusMsg
\":\"Your report has been queued\",\"reportID\":83928267}"]


Maybe the POST gets redirected to something with the same URL? The
status I see is 200, not 301 or 302.







On Mar 5, 2:33 pm, larry google groups <lawrencecloj...@gmail.com>
wrote:
> Out of frustration, I have decided to surpress the re-tries. This
> worries me -- I hate to bury a problem without understanding it. But
> the retries are burying the actual queries. This page:
>
> https://github.com/dakrone/clj-http
>
> says:
>
> ;; Apache's http client automatically retries on IOExceptions, if you
> ;; would like to handle these retries yourself, you can specify a
> ;; :retry-handler. Return true to retry, false to stop trying:
> (client/post "http://example.org"; {:multipart [["title" "Foo"]
>                                                ["Content/type" "text/
> plain"]
>
> ["file" (clojure.java.io/file "/tmp/missing-file")]]
>                                    :retry-handler (fn [ex try-count
> http-context]
>                                                     (println "Got:"
> ex)
>                                                     (if (> try-count
> 4) false true))})
>
> So I have re-written my function so that the re-tries are always
> suppressed:
>
> (defn omniture-call-api [url-with-queue-method api-payload headers]
>   (timbre/spy :debug " return value of omniture-call-api "
>               (try+
>                 (http-client/post url-with-queue-method
>                                   {:body api-payload
>                                    :debug true
>                                    :debug-body true
>                                    :insecure true
>                                    :headers {"X-Api-Version" "2"
>                                              "X-WSSE" headers}
>                                    :content-type :json
>                                    :socket-timeout 4000
>                                    :conn-timeout 4000
>                                    :accept :json
>                                    :client-params
> {"http.protocol.allow-circular-redirects" false
>                                                    "http.useragent"
> "clj-http"}
>                                    :retry-handler (fn [ex try-count
> http-context]
>                                                     false)
>                                    })
>                 (catch Object o (catch-clj-http-exceptions o)))))
>
> I will have to come back to this later, when I have more time, and try
> to figure out what is going wrong.
>
> On Mar 5, 2:19 pm, larry google groups <lawrencecloj...@gmail.com>
> wrote:
>
>
>
>
>
>
>
> > This is strange. An IOException is thrown, but it seems to do with
> > with the retry, which should never exist in the first place, unless an
> > IOException has been thrown:
>
> >  clj-http has thrown this exception:
> > {:trace-redirects
> >  ["https://api2.omniture.com/admin/1.3/rest/?
> > method=Report.QueueOvertime"],
> >  :request-time 885,
> >  :status 401,
> >  :headers
> >  {"date" "Tue, 05 Mar 2013 19:14:46 GMT",
> >   "server" "Omniture AWS/2.0.0",
> >   "www-authenticate"
> >   "WSSE realm=\"Omniture REST Api\", profile=\"UsernameToken\"",
> >   "xserver" "www811",
> >   "content-length" "90",
> >   "content-type" "application/json",
> >   "connection" "close"},
> >  :body
> >  "{\"error\":\"The nonce
> > (NGQ1ODc4NmU3M2QyY2I5MmIyOTIzOWFiN2Q4ODc1NjQ=) has already been used
> > \"}"}
>
> > On Mar 5, 12:45 pm, larry google groups <lawrencecloj...@gmail.com>
> > wrote:
>
> > > > silly question are you using the call in a sequence pipeline with pmap 
> > > > or
> > > > mapcat or the like? Or does clj-http that under the covers?
>
> > > Those are good questions. Until I get this working I have been doing
> > > the simplest thing possible, which is simply starting the app, and
> > > then having the app make the call to Omniture as one of the first
> > > things it does on startup.
>
> > > I will dig into clj-http to see what it is doing under the covers.
>
> > > I am curious, do you have a suspicion about something? A theory?
>
> > > On Mar 5, 11:17 am, "Meikel Brandmeyer (kotarak)" <m...@kotka.de>
> > > wrote:
>
> > > > Hi,
>
> > > > silly question are you using the call in a sequence pipeline with pmap 
> > > > or
> > > > mapcat or the like? Or does clj-http that under the covers?
>
> > > > Kind regards
> > > > Meikel

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to