fibjs/fibjs

http请求解析问题

lhkzh opened this issue · 5 comments

lhkzh commented

这么写请求时,服务器解析的address不正确
//url本来带了参数,又 带query的时候。

`http.get("http://127.0.0.1:8048/?aa=111",{query:{bb:"233"}}).statusCode

new (require("http").Server)(8048, (req) => { console.log(req.address,req.query.toJSON()); req.response.write('ok'); }).start();`

问题是 http://127.0.0.1:8048/?aa=111?bb=233 的解析方式。我测试了一下,node 返回了同样的 { aa: '111?bb=233' } 结果。此时,?aa= 部分也会被解析为 query 。

lhkzh commented

大概是我标题说错了,应该是 client 拼装部分的问题0.0”。 和解析没关系,解析正确的。

问题是 http://127.0.0.1:8048/?aa=111?bb=233 的解析方式。我测试了一下,node 返回了同样的 { aa: '111?bb=233' } 结果。此时,?aa= 部分也会被解析为 query 。

在最近一次 HttpClient 重构中解决了这个问题:ea8e92c
之前的版本:

fibjs temp/test.js                                   
/ {
  "aa": "111?bb=233"
}

迭代后的版本:

bin/Darwin_arm64_release/fibjs temp/test.js          
/ {
  "bb": "233"
}