HarmonyOS 鸿蒙Next extraData 到底如何传递json参数啊?
HarmonyOS 鸿蒙Next extraData 到底如何传递json参数啊?
httpPostUrl,
{
method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET
// 开发者根据自身业务需要添加header字段
header: { ‘Content-Type’: ‘application/json’ },
// 当使用POST请求时此字段用于传递请求体内容,具体格式与服务端协商确定
extraData: {“campName”:“234”,“campText”:“23424”},
expectDataType: http.HttpDataType.STRING, // 可选,指定返回数据的类型
usingCache: true, // 可选,默认为true
priority: 1, // 可选,默认为1
connectTimeout: 60000, // 可选,默认为60000ms
readTimeout: 60000, // 可选,默认为60000ms
usingProtocol: http.HttpProtocol.HTTP1_1, // 可选,协议类型默认值由系统自动指定
usingProxy: false, // 可选,默认不使用网络代理,自API 10开始支持该属性
caPath: ‘/path/to/cacert.pem’, // 可选,默认使用系统预制证书,自API 10开始支持该属性
clientCert: {
// 可选,默认不使用客户端证书,自API 11开始支持该属性
certPath: ‘/path/to/client.pem’, // 默认不使用客户端证书,自API 11开始支持该属性
keyPath: ‘/path/to/client.key’, // 若证书包含Key信息,传入空字符串,自API 11开始支持该属性
certType: http.CertType.PEM, // 可选,默认使用PEM,自API 11开始支持该属性
keyPassword: “passwordToKey” // 可选,输入key文件的密码,自API 11开始支持该属性
}
}, (err: BusinessError, data: http.HttpResponse) => {
if (!err) {
// data.result为HTTP响应内容,可根据业务需要进行解析
console.info(‘Result:’ + JSON.stringify(data.result));
console.info(‘code:’ + JSON.stringify(data.responseCode));
// data.header为HTTP响应头,可根据业务需要进行解析
console.info(‘header:’ + JSON.stringify(data.header));
console.info(‘cookies:’ + JSON.stringify(data.cookies)); // 8+
// 当该请求使用完毕时,调用destroy方法主动销毁
httpRequest.destroy();
callBack(data);
} else {
console.error(‘error:’ + JSON.stringify(err));
// 取消订阅HTTP响应头事件
httpRequest.off(‘headersReceive’);
// 当该请求使用完毕时,调用destroy方法主动销毁
httpRequest.destroy();
}
你们这个extraData 怎么写的json啊? 我后端完全获取不到啊。heard我都写了 json的格式我也试了几种 都不行 就是获取不到?
我这个到底问题在哪里 即使我把key的双引号去掉 也是获取不到。真是无语了都。
更多关于HarmonyOS 鸿蒙Next extraData 到底如何传递json参数啊?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
使用post请求无法带入extraData参数,有规避方案:
当前可使用axios三方库重写transformRequest方法进行替代:
axios.post(this.url, formData, {
headers: { 'Content-Type': 'multipart/form-data' },
transformRequest:(data:Object)=>{
return data
}
})
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
axios三方库方法使用可参考如下地址:https://gitee.com/openharmony-sig/ohos_axios
更多关于HarmonyOS 鸿蒙Next extraData 到底如何传递json参数啊?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
晚上的时候我也查到这个 我不知道为什么官方文档里面不说明一下 害人查这么久。不理解。
在HarmonyOS鸿蒙Next中,若要通过extraData
传递JSON参数,通常需要注意以下几点:
- 请求方法:确保你使用的请求方法(如GET或POST)符合服务端的要求。GET请求通常不直接在
extraData
中传递复杂的JSON对象,而是将参数序列化为查询字符串。POST请求则可以在extraData
中直接传递JSON格式的字符串或对象(需根据服务端的具体要求来确定)。 - Content-Type:当使用POST请求时,设置
header
中的Content-Type
为application/json
,以告知服务端你正在发送JSON格式的数据。 - 参数序列化:如果服务端要求以查询字符串的形式传递参数(如GET请求),则需要将JSON对象序列化为查询字符串,例如
id=45723HSDW898&pid=8972422356
。 - 服务端接收:确保服务端能够正确解析你传递的参数。如果服务端无法解析,可能是因为参数格式不正确或服务端代码存在问题。
如果遵循了上述步骤仍无法解决问题,可能是服务端或客户端的其他配置影响了参数的传递。此时,建议联系官网客服以获取更专业的帮助。官网地址是:https://www.itying.com/category-93-b0.html。