我在反應原生Android應用中使用抓取API向本地API發出請求。我通常在http://localhost:8163查詢反應網絡應用程序的API。React原生Android抓取失敗,連接到本地API
我在調試器模式下在我的物理設備上測試我的應用程序。我在某處讀到反應 - 本地不能像Web應用程序一樣查詢本地主機。顯然你必須使用http://10.0.2.2:[PORT_NUMBER_HERE]/
,這是根據Android模擬器碼頭的`http://127.0.0.1:[PORT_NUMBER_HERE]的別名。我不確定這是我應該在物理設備上進行測試。
我獲取代碼如下所示:
fetchToken() {
fetch('http://10.0.2.2:8163/extension/auth', {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-type': 'application/json'
}
})
.then((response)) => console.log('successful fetchToken response: ', response.json()))
.catch((error) => console.log('fetchToken error: ', error))
.done();
}
請求總是掛起了一會兒,然後到達catch
塊與無益的錯誤TypeError: Network request failed(...)
。檢查我的本地API的日誌,他們根本不註冊請求。
所以我不知道如果我正確查詢我的本地API來獲取我想要的資源,並且如果我是,我不知道爲什麼獲取失敗。
啊,這是因爲你的Android模擬器是一個不同的機器從本地計算機開發。對於物理設備來說,就像從不同的機器進行測試一樣:要麼有名稱解析系統,要麼使用IP地址 – njzk2
@ njzk2能否詳細說明?我有同樣的問題,但不知道你的名字解析系統是什麼意思?我使用我的計算機的IP地址在反應本機文檔中請求.. –
@ Andrea.cabral名稱解析通常由DNS完成。 – njzk2