1. 程式人生 > >在本地代理的情況下出現code=-500001的問題解決方法

在本地代理的情況下出現code=-500001的問題解決方法

1 問題起因

一個專案需要用到線上資料,所以抓取qq音樂歌手資料。當然 肯定要寫代理的。

代理程式碼如下

 

但是我在使用代理的情況下

給我返回 code : -500001 ts : 1542443107469

這說明 你能呼叫介面但是抓不到資料

2.錯誤分析

出現code : -500001 ts : 1542443107469 這種錯誤 一定是你的jsonp裡面的字串引數沒配對錯誤

但是我所有的引數都是對著qq音樂那邊搬過來的 應該不可能出現引數沒配對成功的情況

以下是qq音樂的引數

 

 在我反覆的除錯與qq音樂進行對比的時候 終於發現了問題所在

上面是qq音樂的網址 下面是我們本地代理的網址 可以發現 data之前的引數是一樣的 而data裡的引數和qq音樂的不一樣 但是我們所有的json裡面所有的引數都是對著qq音樂搬過來的 為什麼會出現這種情況呢。

3.瞭解序列化物件

我在查了很久資料之後。 一次又一次的除錯 終於解決了這個問題。首先我們要了解序列化物件

1.物件序列化是什麼

:序列化 (Serialization)將物件的狀態資訊轉換為可以儲存或傳輸的形式的過程。在序列化期間,物件將其當前狀態寫入到臨時或永續性儲存區。以後,可以通過從儲存區中讀取或反序列化物件的狀態,重新建立該物件。

2.為什麼要序列化

:當兩個程序在進行遠端通訊時,彼此可以傳送各種型別的資料。無論是何種型別的資料,都會以二進位制序列的形式在網路上傳送。傳送方需要把這個物件轉換為位元組序列,才能在網路上傳送;接收方則需要把位元組序列再恢復為物件。 把物件轉換為位元組序列的過程稱為物件的序列化。 把位元組序列恢復為物件的過程稱為物件的反序列化。

說白了就是為了保證資料傳輸的安全性,以免發生意外時資料丟失。 序列化說白了就是將資料轉成位元組型陣列然後傳輸。

3.序列化和反序列化

 把物件轉換為位元組序列的過程稱為物件的序列化  把位元組序列恢復為物件的過程稱為物件的反序列化

4.解決方法

瞭解序列化物件之後 我們知道 此時我們要對我們的data進行序列化

剛剛json又有方法可以直接呼叫

序列化:JSON.stringify()

反序列化:JSON.parse()

所以我們把data物件序列化

程式碼如下

 

最後我們在console.log我們獲取的資料 發現已經OK啦