Проблема с разбором URL: исключая символ '+' - PullRequest
0 голосов
/ 06 июня 2018

У меня есть URL

viberpa://aafff+a@viber.com?phone_number=vv+9nc3pVg==&user_id=cc+9nc3pVg==

, когда я попробовал следующий пример кода для анализа URL

//input code
const url = require("url");
 let uri = 'viberpa://aafff+a@viber.com?phone_number=vv+9nc3pVg==&user_id=cc+9nc3pVg==&token_created_time=2018-05-28T11:31:42.760Z'
 let uri_pasrse = url.parse(uri, true);
 console.log(uri_pasrse.query);

для получения строк запроса:

{ phone_number: 'vv 9nc3pVg==',
  user_id: 'cc 9nc3pVg==',
  token_created_time: '2018-05-28T11:31:42.760Z' }

Строки запроса исключаются символом +.Как я могу получить исходные строки запроса, используя метод синтаксического анализа или предложить какой-либо альтернативный метод?

1 Ответ

0 голосов
/ 06 июня 2018

Каждый параметр запроса должен быть предварительно закодирован.В javascript (в данном случае NodeJS) вы можете использовать encodeURIComponent:

'use strict';

const url = require('url');
const uri = `viberpa://aafff+a@viber.com?phone_number=${encodeURIComponent('vv+9nc3pVg==')}&user_id=${encodeURIComponent('cc+9nc3pVg==')}&token_created_time=2018-05-28T11:31:42.760Z`;
const uri_parse = url.parse(uri, true);
console.log(uri_parse.query);

Результат:

{ 
    phone_number: 'vv+9nc3pVg==',
    user_id: 'cc+9nc3pVg==',
    token_created_time: '2018-05-28T11:31:42.760Z'
}
...