HarmonyOS 鸿蒙Next post请求,通过extraData中写入参数请求不到数据的问题
HarmonyOS 鸿蒙Next post请求,通过extraData中写入参数请求不到数据的问题 为什么请求不到数据呢?postman中如果是json传进的是请求不到数据,表单形式就可以请求到;
其次,在header中设置为表单方式,也一样请求不到数据?求解答!
更多关于HarmonyOS 鸿蒙Next post请求,通过extraData中写入参数请求不到数据的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
let data = { “currentPage” : 1, “pageSize” : 10}
json 参数我也是这样传的
```bash
Content-Type application/json设置了吗
更多关于HarmonyOS 鸿蒙Next post请求,通过extraData中写入参数请求不到数据的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我知道了, 我的这个post请求需要表单的形式来请求, json是请求不到数据的, 表单需要怎么请求呀, `objectToQueryString`这个方法爆红,
const objectToQueryString = (params: object) => {
let result = “”
for (let key in params) {
const value = params[key]
result += ${key}=${value}&
}
result = result.slice(0, -1)
return result
},
感谢感谢,成啦!!! 谢谢,
一模一样的问题
这问题还没得到解决,我先跳过了,
我用的api9,也是这个问题,在模拟器上post请求根本就跑不动,参数就传不过去,使用axios三方库也一样不行,不知道是不是模拟器的问题。
传参格式问题,比如你原有接口入参请求格式是body={name:’’,password:’’}这样的json格式的话,调用鸿蒙的httpRequest传参extraData:{name:’’,password:’’},接口拿到的就是data= {“userName”:“admind”,“password”:“By123456”} 格式完全乱了,接口取不到正确的字段,全部的传参都被压缩成了一整个字符串,而这个字符串的值是空,把整个传参变成了键名,而键值为空,尝试了好几种办法…好难受,在gitee上有人封装了axios,可以去参考看看。
一模一样,都是null
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17
是只有模拟器有这个问题,还是真机也有这个问题呀
模拟器和真机都试过,都有这个问题,
目前这块功能在完善中,已经在规划中了。
这个问题目前解决了么。
我post请求用json和表单都可以请求到数据
// extraData: objectToQueryString(data),//表单参数
extraData: data,//json参数
我是这么传进去的, 请求不到数据
extraData:
- key: 397c9db4cb0621ad0313123dab416668
- city: 北京
在HarmonyOS鸿蒙Next中,如果通过extraData
写入参数的POST请求无法获取数据,可能的原因包括:
- 参数格式问题:
extraData
中的参数格式可能不符合服务器要求,确保参数以正确的JSON格式传递。 - 请求头设置问题:检查请求头是否正确设置,特别是
Content-Type
,通常应为application/json
。 - 网络权限问题:确保应用已获取网络访问权限,可在
config.json
中配置ohos.permission.INTERNET
。 - URL或路径问题:确认请求的URL和路径正确无误。
- 服务器端问题:服务器可能未正确处理请求,检查服务器日志以排查问题。
- 异步处理问题:确保在异步请求中正确处理回调函数,以获取服务器返回的数据。
示例代码:
import http from '[@ohos](/user/ohos).net.http';
let httpRequest = http.createHttp();
let url = 'https://example.com/api';
let extraData = {
key1: 'value1',
key2: 'value2'
};
httpRequest.request(url, {
method: http.RequestMethod.POST,
header: {
'Content-Type': 'application/json'
},
extraData: JSON.stringify(extraData)
}, (err, data) => {
if (err) {
console.error(`Request failed, code is ${err.code}, message is ${err.message}`);
} else {
console.info('Response data: ' + data.result);
}
});
``
确保参数格式、请求头、网络权限、URL路径、服务器处理及异步回调均正确设置。