Monday, May 31, 2010

Wget - TroubleShooting 利器

之前我在看一些網頁相關問題時,都會用Fiddler去找問題,不過這次在玩Yahoo! OAuth時,他回傳的錯誤只有401 Error: Unauthorized.用上Fiddler也看不到其他的錯誤訊息,所以找了這個Wget來除錯。

Wget是一個在Unix/Lunix上蠻多人使用的一個工具(詳情請看wiki),因為我在windows環境下作業,所以去找了這個Wget for Windows來用。

我下載的是Wget 1.11.4版,安裝後似乎是不會有捷徑,所以自己跑去找wget的執行檔執行吧。(預設在C:\Program Files\GnuWin32\bin\)

使用上就是在Command Line下面下指令,其實還蠻簡單的,也可以使用"wget -help"看說明,它的help看來是多國語系,所以也有中文,相當易懂。

wget功能相當多,不過我只用很簡單的HTTP Post功能而已,我用的指令如下

wget -S -d --no-check-certificate LINK --post-data "DATA"

範例如下(刪減過了)

wget -S -d --no-check-certificate https://api.login.yahoo.com/oauth/v2/get_token --post-data "oauth_nonce=2cd6a05c5319c8f1914a5470f66d1ec1"

所使用的參數
-S 顯示伺服器回傳訊息
-d 印出偵錯訊息
--no-check-certificate 不驗證伺服器的憑證 (因為yahoo這個api我會驗證不過)
--post-data 使用POST方式送出字串

如此一來,就可以判斷出問題所在了。


6 comments:

  1. 你好,我想請問一下,我試用了wget將所有參數都傳過一遍,

    為什麼每一筆都會認證失敗呢?還一直卡在第一關,煩請

    大大多指教,感謝!

    ReplyDelete
  2. 如果你是說OAuth的話,認證失敗應該是參數給的值有錯

    ReplyDelete
  3. 大大你好,我當初也擔心此問題,於是只傳了一個 oauth_timestamp 欄位,

    當下是 2012/09/11 15:03 =1347508800 ,仍然傳回認證失敗?

    ReplyDelete
  4. Gavin :
    我猜是你給的參數有缺,請問你是在做哪一步的時候他回認證失敗 ?

    ReplyDelete
  5. 大大,你好:

    我參考了你的一篇文章:
    http://www.died.tw/2010/06/yahoo-oauth.html
    在進行到 STEP 2 Get a Request Token
    因直接送過去,都會出現 404 於是用wget去debug,
    就一直會出現認證失敗

    ReplyDelete
  6. @Gavin :
    你可以參考我的範例,共有七個參數要傳過去
    比較有可能出錯的應該是oauth_consumer_key跟oauth_signature的內容
    檢查一下應該找的到錯誤點

    ReplyDelete