How to escape the url encoding in URLWRITE

4 vues (au cours des 30 derniers jours)
Neil Caithness
Neil Caithness le 18 Oct 2013
Commenté : Neil Caithness le 23 Oct 2013
Hi
I've encountered a slight problem trying to use URLWRITE with 'get' parameters.
keyStr = 'Fmjtd%7Cluubnuur2h%xxxxxxxxxxx'; % not a real key
params = {'key' keyStr};
Now with appropriate url and filename I try:
[~,status] = urlwrite(url,filename,'get',params);
But URLWRITE calls java.net.URLEncoder.encode on the params so %'s are turned into %25, and of course the key fails.
How can I escape the url encoding? I've tried '%%' and '\%' but neither work.
Any ideas appreciated.
Neil
  2 commentaires
Walter Roberson
Walter Roberson le 18 Oct 2013
Is the %7C intended to be interpreted on the other end as literally '%' '7' 'C', or is it intended that the other end decode it to character #252 ?
Neil Caithness
Neil Caithness le 21 Oct 2013
Yes, the content of the key needs to be passed literally, without url encoding.

Connectez-vous pour commenter.

Réponse acceptée

Friedrich
Friedrich le 21 Oct 2013
Hi,
you can't. Look at the rules which are applied:
"All other characters are unsafe and are first converted into one or more bytes using some encoding scheme. Then each byte is represented by the 3-character string "%xy", where xy is the two-digit hexadecimal representation of the byte."
Seems like you need your own customized version of urlwrite here.
  4 commentaires
Walter Roberson
Walter Roberson le 22 Oct 2013
I would substitute char(252) for the %7C in your string, and then let the url encoder transform it to %7c
Neil Caithness
Neil Caithness le 23 Oct 2013
Walter, of course. Nice suggestion. Thanks

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by