URL encode, problemas com %26

6 respostas
V

Olá pessoal,

Estou com o seguinte problema, quando coloco minha url no browser utilizando ‘%26’ no lugar do ‘e’ comercial (&) para separar os parâmetro o browser abre a janela de download e manda um arquivo vazio, se troco e coloco o ‘&’, funciona normalmente, vcs já viram esse erro?

Estou utilizando o OC4J como conteiner.

Abraçowww

6 Respostas

T

Isso não é um erro e sim um comportamento esperado. Por que é que você quer usar “%26” em vez de “&” ?

V

É que o usuário acessa essa parte do sistema através de um link recebido por email q é enviado pelo oracle workflow.

O que acontece é que nesse link tem dois parâmetros e seus valores são colocados pelo workflow e para colocar o valor de uma variável no workflow é utilizado o & + nome da variável, então se coloco o & ele pensa que o resto da string é uma variável e tenta atribuir o valor ficando com a url zuada

aew a url fica ± assim…

http…bla/bla/bla?variavel1=&valor1%26variavel2=&valor2

, mas carinha, como assim comportamento esperado?

T

Que sinistro. À primeira vista dá a impressão que você teria de fazer isto:

http://bla/bla/bla?variavel1=%26valor1&variavel2=%26valor2

Mas aí é o tal workflow que não acha os valores das variáveis. Por acaso existe uma forma de “escapar” o caracter “&” para o workflow? Como não conheço o tal workflow que você está usando, talvez seja até possível se o cara que o designou pensou nessas coisas. Digamos que para você ter um “&” na saída, você tenha de duplicar usando “&&”.
Você usaria a string

http://bla/bla/bla?variavel1=&valor1&&variavel2=&valor2

e o workflow (supondo que valor1=rasta e valor2 = fari) deixaria como:

http://bla/bla/bla?variavel1=rasta&variavel2=fari

É possível passar os valores por POST, não por GET, ou então fazer uma outra coisa (que seria passar os valores todos em uma única variável, e mexer na página para separar os valores, mais ou menos assim:

http://bla/bla/bla?parametros=&valor1|&valor2|&valor3
V

verdade… mas tentei d tudo quanto é jeito “escapar” o & mas nem teve jeito…

mas então, como assim colocando o %26 é esperado que abra uma janela para download, como é um comportamento esperado?

desde já obrigado pela atenção thingol!

T

& é o separador de argumentos, e %26 seria uma forma de usar o & literalmente, não como separador de argumentos. Veja na documentação do seu framework de workflow se existe uma forma de “escapar” o caracter “&”, para que não seja entendido como um início de macro.

V

uhmmm entendi…

então, pra resolver problema, já que não consegui escapar o &, nada como um pog neh xD, criei uma variável com o valor & xD, aí chamo a variável &SEPARADOR_URL e fica com o valor & na minha query string, tosco neh? Pois é tb achei…

fiquei pensando, aí fiz outro teste, eu estava colocando %26 no lugar do &, mas o correto mesmo penso que seria realizar o encode de toda query string, aí fiz o encode de toda query string e coloquei no browser e adivinha??? xD funcionou!!! não abre mais a janela de download como fazia antes, a aplicação entra na pag certinha.

Obrigado pela ajuda carinha, abraço!!!

Criado 12 de dezembro de 2008
Ultima resposta 16 de dez. de 2008
Respostas 6
Participantes 2