HarmonyOS鸿蒙Next中网络请求返回的数据跟抓包工具返回的数据不一样???
HarmonyOS鸿蒙Next中网络请求返回的数据跟抓包工具返回的数据不一样??? 如下图公司的网络请求是封装的@ohos+axios@2.2.2,res是返回的,没有经过处理的,这个id为什么就变了呢,现在有个接口是删除的接口,要传id这个返回的id跟抓包返回 的id不一样,导致接口一直报错,删除不了,也试过模型class 上用bigint来接收,还是不行,这真奇怪了,完全不知道怎么解决8600这个id在抓包软件中搜索,也只搜索到了删除那个接口返回 的这个86800

更多关于HarmonyOS鸿蒙Next中网络请求返回的数据跟抓包工具返回的数据不一样???的实战教程也可以访问 https://www.itying.com/category-93-b0.html
考虑到安卓跟iOS都上线了,处理为,鸿蒙自己处理,最后解决代码如下
export function testApi(pageNo: number, pageSize: number): Promise<ResponseData<PoiModel>[]> {
return netRequest.get<ResponseData<PoiModel>[]>({
url: "/tworki/ites",
params: { pageNo, pageSize},
headers: { "Accept": "application/json" } as AxiosRequestHeaders,
transformResponse: (jsonString: string) => {
jsonString = jsonString.replace(/("id": )(\d+)/g, '$1"$2"');
// 把id字段的数字转为字符串
let matches = jsonString.match(/("id":)(\d+)/g);
if (matches) {
matches.forEach(match => {
let numberPart = match.split(':')[1];
let quotedMatch = match.replace(numberPart, `"${numberPart}"`);
jsonString = jsonString.replace(match, quotedMatch);
});
}
return JSON.parse(jsonString)
}
}).then((res) => {
let jsonObj: Array<object> = res.data
let datas: PoiModel[] = plainToInstance(PoiModel, jsonObj)
res.data = datas
return res
})
}
更多关于HarmonyOS鸿蒙Next中网络请求返回的数据跟抓包工具返回的数据不一样???的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
你这是JS的float类型转换问题,
在HarmonyOS鸿蒙Next中,网络请求返回的数据与抓包工具返回的数据不一致,可能是由于以下原因:
-
数据加密/解密:鸿蒙Next可能对网络请求的数据进行了加密,而抓包工具捕获的是未加密的原始数据,导致两者不一致。
-
协议处理差异:鸿蒙Next可能对网络协议进行了特殊处理或优化,抓包工具捕获的是原始的协议数据,而鸿蒙Next处理后的数据可能有所不同。
-
数据压缩:鸿蒙Next可能对网络请求的数据进行了压缩,抓包工具捕获的是未压缩的数据,导致两者不一致。
-
缓存机制:鸿蒙Next可能在本地缓存了部分数据,网络请求返回的数据可能来自缓存,而抓包工具捕获的是服务器返回的原始数据。
-
数据格式转换:鸿蒙Next可能对返回的数据进行了格式转换或处理,抓包工具捕获的是原始的服务器响应数据,导致两者不一致。
-
网络中间件:鸿蒙Next可能使用了某些网络中间件或代理,这些中间件可能对数据进行了修改或过滤,抓包工具捕获的是经过中间件处理前的数据。
-
时间戳或动态数据:如果返回的数据中包含时间戳或其他动态生成的内容,鸿蒙Next和抓包工具捕获的数据可能会因为时间差异而不一致。
-
协议版本差异:鸿蒙Next可能使用了与抓包工具不同的协议版本,导致数据解析结果不同。
解决此类问题,通常需要对比鸿蒙Next的网络请求实现与抓包工具捕获的原始数据,分析差异点,确定具体原因。
在HarmonyOS鸿蒙Next中,网络请求返回的数据与抓包工具返回的数据不一致,可能由以下原因导致:
- 加密或压缩:服务器对数据进行了加密或压缩,抓包工具显示的是原始数据,而应用层已进行解密或解压。
- 缓存机制:应用可能使用了缓存机制,导致返回的是缓存数据而非实时数据。
- 代理或重定向:网络请求可能经过代理或重定向,抓包工具捕捉的是实际请求路径,而应用收到的是最终响应。
- 数据解析差异:应用层对数据进行了额外的解析或处理,导致与抓包工具显示的原始数据不同。
建议检查网络请求的实现逻辑,确认是否有上述情况,并使用调试工具进一步验证数据流。