Как я могу отладить clj-apache-http? - PullRequest
0 голосов
/ 24 февраля 2011

Я пытаюсь запустить приложение OAuth, но мне не удается, потому что серверы API не будут общаться со мной. К сожалению, использованный clj-apache-http не скажет мне, в чем проблема, я получаю только это предупреждение:

WARNUNG: Authentication error: Unable to respond to any of these challenges: {oauth=WWW-Authenticate: OAuth realm="http%3A%2F%2FSERVERNAME"}
Exception in thread "Thread-1" java.lang.RuntimeException: java.lang.Exception: JSON error (unexpected character): I (example.clj:1)
        at clojure.lang.AFn.run(AFn.java:28)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.Exception: JSON error (unexpected character): I (example.clj:1)
        at clojure.lang.Compiler.eval(Compiler.java:5440)
        at clojure.lang.Compiler.load(Compiler.java:5857)
        at clojure.lang.RT.loadResourceScript(RT.java:340)
        at clojure.lang.RT.loadResourceScript(RT.java:331)
        at clojure.lang.RT.load(RT.java:409)
        at clojure.lang.RT.load(RT.java:381)
        at clojure.core$load$fn__4511.invoke(core.clj:4905)
        at clojure.core$load.doInvoke(core.clj:4904)
        at clojure.lang.RestFn.invoke(RestFn.java:409)
        at clojure.core$load_one.invoke(core.clj:4729)

Хорошо, теперь это не помогает мне. Странный символ I в качестве первого в ответе - это явно не JSON.

Я хочу, чтобы уровень журнала apaches HTTPClient достигал уровня DEBUG, но я не знаю, как установить системные свойства с помощью leiningen . Любые советы?

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

Это способ получить все запросы по clj-apache-http через локальный прокси-сервер отладки:

(require ['com.twinql.clojure.http :as 'http])

(:content 
  (http/get (java.net.URI. "http://yourhost.com")
    :parameters (http/map->params {
      :default-proxy (http/http-host
        :host "127.0.0.1" 
        :port 8765)}) :as :string))
0 голосов
/ 12 февраля 2013

В качестве альтернативы, вы можете добавить это к вашим log4j.properties:

log4j.logger.httpclient.wire.header=DEBUG
log4j.logger.httpclient.wire.content=DEBUG
log4j.logger.org.apache.commons.httpclient=DEBUG
log4j.logger.org.apache.http=DEBUG
log4j.logger.org.apache.http.wire=DEBUG

, который будет сбрасывать все сообщения в ваш файл журнала.Это полезно, не нужно менять код, который делает запрос.

...