0

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 ではありません。

現在、Apache HTTPClient のログ レベルを DEBUG まで取得したいのですが、 leiningen を介してシステム プロパティを設定する方法がわかりませ。任意のヒント?

4

2 に答える 2

1

これは、ローカル デバッグ プロキシを介して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))
于 2011-02-24T21:18:36.303 に答える
0

または、これを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

これにより、すべての通信がログファイルにダンプされます。これは、リクエストを行うコードを変更したくない場合に便利です。

于 2013-02-12T10:52:10.683 に答える