electron-request
electron-request copied to clipboard
URL编码问题
node: v21.1.0 electron: 25.8.0
async test() {
let url = 'https://xxxx/yyyyy'
let query = {
data1: 'abc:edf'
}
// let fullUrl = this.getQueryUrlOfApi(url, query)
try {
let response = await request(url, {
method: 'GET',
query: query
})
// let response = await request(fullUrl, {
// method: 'GET'
// })
return await response.json()
} catch (e) {
return {
success: false,
message: e.toString()
}
}
}
getQueryUrlOfApi(url, query) {
const parsedURL = new URL(url)
const { searchParams } = parsedURL
for (const [queryKey, queryValue] of Object.entries(query)) {
searchParams.set(encodeURIComponent(queryKey), queryValue)
}
return parsedURL.href
}
query参数里的“:”编码有问题,通过electron的session.defaultSession.webRequest.onBeforeSendHeaders确实能看到最后被编码成了“%253A”,所以不得不使用getQueryUrlOfApi防止重复编码两次。 可能是我没找到相关的设置,也可能是新版electron会自动编码URL?