HarmonyOS 鸿蒙Next 服务器接收HTTP数据POST请求显示为乱码
HarmonyOS 鸿蒙Next 服务器接收HTTP数据POST请求显示为乱码
log输出信息为
08-29 20:36:29.560 16276-29530/com.example.baidu I 03B00/JSApp: app Log: ##header: {"code":202,"data":"type error"}
08-29 20:36:29.783 16276-29530/com.example.baidu I 03B00/JSApp: app Log: ##Result:<!DOCTYPE html>
08-29 20:36:29.783 16276-29530/com.example.baidu I 03B00/JSApp: app Log: ##code:200
08-29 20:36:29.783 16276-29530/com.example.baidu I 03B00/JSApp: app Log: ##header:{"Content-Type":["text/html"],"Date":["Mon, 29 Aug 2022 12:36:29 GMT"],"Server":["bfe"],"Status-Line":["HTTP/1.1 200 OK"]}
08-29 20:36:29.783 16276-29530/com.example.baidu I 03B00/JSApp: app Log: ##cookies:undefined
JS代码
```perl
import http from '[@ohos](/user/ohos).net.http'
export default {
data: {
title: ""
},
onInit() {
this.title = this.$t('strings.world');
},
httprequest() {
var username="2102010808";
var password="fyx5212003";
let httpRequest = http.createHttp();
// 用于订阅http响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息
// 从API 8开始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback). 8+
httpRequest.on('headersReceive', (header) => {
console.info('##header: ' + JSON.stringify(header));
});
httpRequest.request(
// 填写http请求的url地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定
"http://43.138.48.60:8889/studentlogin/verification/",
{
method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET
// 开发者根据自身业务需要添加header字段
// header: {
// 'Content-Type': 'application/json'
// },
// 当使用POST请求时此字段用于传递内容
extraData: {
'username':"2102010808",
'password':"fyx5212003",
},
connectTimeout: 60000, // 可选,默认为60s
readTimeout: 60000, // 可选,默认为60s
}, (err, data) => {
if (!err) {
// data.result为http响应内容,可根据业务需要进行解析
console.info('##Result:' + data.result);
console.info('##code:' + data.responseCode);
//data.header为http响应头,可根据业务需要进行解析
console.info('##header:' + JSON.stringify(data.header));
console.info('##cookies:' + data.cookies); // 8+
} else {
console.info('##error:' + JSON.stringify(err));
// 当该请求使用完毕时,调用destroy方法主动销毁。
httpRequest.destroy();
}
}
);
}
}
更多关于HarmonyOS 鸿蒙Next 服务器接收HTTP数据POST请求显示为乱码的实战教程也可以访问 https://www.itying.com/category-93-b0.html
6 回复
楼主你好,header里面改成这样试下
'Content-Type':"application/json; charset=UTF-8"
更多关于HarmonyOS 鸿蒙Next 服务器接收HTTP数据POST请求显示为乱码的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
试了一下,不能运行,会报错,
楼主你好,把冒号换成英文的,
你好,问题解决了吗,我这边传到后台的中文也乱码
![N345HH7(9UY4@EAOUNXKLBS.png
针对HarmonyOS 鸿蒙Next 服务器接收HTTP数据POST请求显示为乱码的问题,可能的原因及解决方法如下:
-
字符编码不一致:
- 检查客户端发送POST请求时使用的字符编码与服务器端接收时解析的字符编码是否一致。常见的字符编码有UTF-8、GBK等。如果编码不一致,服务器在解析时可能会出现乱码。
-
请求头设置问题:
- 确认客户端在发送POST请求时是否正确设置了
Content-Type
请求头。例如,如果发送的是JSON数据,应设置为application/json; charset=utf-8
。
- 确认客户端在发送POST请求时是否正确设置了
-
服务器解析逻辑:
- 检查服务器端解析POST请求数据的逻辑是否正确。确保在读取和解析数据时,使用了正确的字符编码。
-
数据传输过程中的编码转换:
- 如果数据在传输过程中经过了中间件或代理服务器,检查这些环节是否对数据进行了不必要的编码转换。
-
网络传输问题:
- 确认网络传输过程中是否存在数据包损坏或传输错误的情况,这可能导致数据在服务器端解析时出现乱码。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,