今天在用java爬取酷狗音樂時碰到了兩個坑,浪費了我不少時間,嗚嗚嗚。
通過拼接hash值獲取歌曲真實接口地址後,遇到了以下兩個錯誤,開始還以爲是https的問題,搞了半天並不是
1、{“status”:0,“err_code”:20010,“data”:[]}
在瀏覽器直接訪問可以獲取到所有數據,但是通過java的httpclient獲取到的只是這個玩意兒。。
最後在請求頭中攜帶cookie值爲:kg_mid=2333,這裏的kg_mid可以是任何值,非空就行。
部分代碼如下:
URL url1 = new URL(url);
HttpsURLConnection httpUrlConn = (HttpsURLConnection) url1.openConnection();
// 必須攜帶一個cookie頭,否則無法獲取數據
httpUrlConn.setRequestProperty("Cookie","kg_mid=2333");
2、“status”:0,“err_code”:30020
在某些網絡下,獲取此json需要傳cookies參數,而某些網絡卻不用(酷狗這操作好沙雕)
所以這個是網絡的問題,只需斷開連接,再重連網絡就行了,