HarmonyOS鸿蒙Next中httpRequest请求头和传参问题
HarmonyOS鸿蒙Next中httpRequest请求头和传参问题 大佬们,麻烦帮忙看下,我明明在header里设置了Token、Username,但后端拿不到!data数据格式也有问题!
发请求:
后端看到的请求头【没有 Token、Username】:
{'REQUEST_METHOD': 'POST', 'QUERY_STRING': '', 'SCRIPT_NAME': '', 'PATH_INFO': '/api/get_notifications', 'wsgi.multithread': True, 'wsgi.multiprocess': True, 'REMOTE_ADDR': '192.168.8.100', 'REMOTE_HOST': '192.168.8.100', 'REMOTE_PORT': 11631, 'SERVER_NAME': '192.168.8.100', 'SERVER_PORT': '8001', 'HTTP_HOST': '192.168.8.100:8001', 'HTTP_USER_AGENT': 'libcurl-agent/1.0', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip', 'CONTENT_TYPE': 'application/x-www-form-urlencoded', 'CONTENT_LENGTH': '74'}
后端看到的请求参数【不知道为什么整段参数都在键里面】:
<QueryDict: {'{"phone_number":"","operation":"查询","config_type":"base_notification"}': ['']}>
更多关于HarmonyOS鸿蒙Next中httpRequest请求头和传参问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
请问后端获取不到 header 参数的问题解决了么
更多关于HarmonyOS鸿蒙Next中httpRequest请求头和传参问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
解决了,不知道怎么突然好了,我也莫名其妙的,
希望HarmonyOS能继续推出更多实用的功能,满足用户的不同需求。
今天重新试又可以了,神奇!关于整段参数都在键里面,可以从body里读取:
json.loads(request.body.decode(‘utf-8’))
在HarmonyOS鸿蒙Next中,httpRequest
模块用于发起HTTP请求。请求头可以通过header
属性设置,传参可以通过extraData
属性传递。
-
设置请求头:在
httpRequest
的options
对象中,使用header
属性来设置请求头。例如:let options = { method: 'GET', header: { 'Content-Type': 'application/json', 'Authorization': 'Bearer token' } };
-
传参:对于GET请求,参数通常附加在URL中。对于POST、PUT等请求,参数可以通过
extraData
属性传递。例如:let options = { method: 'POST', extraData: { key1: 'value1', key2: 'value2' } };
-
发起请求:使用
httpRequest.request
方法发起请求,并处理响应。例如:httpRequest.request('https://example.com/api', options, (err, data) => { if (err) { console.error('Request failed:', err); } else { console.log('Response data:', data); } });
以上是鸿蒙Next中httpRequest
请求头和传参的基本用法。
在HarmonyOS鸿蒙Next中,使用httpRequest
进行网络请求时,可以通过header
属性设置请求头,通过extraData
属性传递参数。例如:
let httpRequest = http.createHttp();
let url = "https://example.com/api";
let headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer token'
};
let params = {
key1: 'value1',
key2: 'value2'
};
httpRequest.request(url, {
method: http.RequestMethod.POST,
header: headers,
extraData: JSON.stringify(params)
}, (err, data) => {
if (err) {
console.error('Request failed:', err);
} else {
console.log('Response:', data.result);
}
});
确保请求头和参数格式正确,并根据API要求调整Content-Type
和参数传递方式。