Ignore:
Timestamp:
2015-05-01T21:47:18+02:00 (9 years ago)
Author:
Don-vip
Message:

simplify URL encoding/decoding

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java

    r8193 r8304  
    22package org.openstreetmap.josm.io.remotecontrol.handler;
    33
    4 import org.openstreetmap.josm.Main;
    5 import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault;
    6 import org.openstreetmap.josm.tools.Utils;
    7 
    8 import javax.swing.JLabel;
    9 import javax.swing.JOptionPane;
    10 import java.io.UnsupportedEncodingException;
     4import static org.openstreetmap.josm.tools.I18n.tr;
     5
    116import java.net.URI;
    127import java.net.URISyntaxException;
    13 import java.net.URLDecoder;
    148import java.text.MessageFormat;
    159import java.util.Collections;
     
    2014import java.util.Map;
    2115
    22 import static org.openstreetmap.josm.tools.I18n.tr;
     16import javax.swing.JLabel;
     17import javax.swing.JOptionPane;
     18
     19import org.openstreetmap.josm.Main;
     20import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault;
     21import org.openstreetmap.josm.tools.Utils;
    2322
    2423/**
     
    210209        }
    211210        for (String kv : uri.getRawQuery().split("&")) {
    212             try {
    213                 final String[] kvs = URLDecoder.decode(kv, "UTF-8").split("=", 2);
    214                 r.put(kvs[0], kvs.length > 1 ? kvs[1] : null);
    215             } catch (UnsupportedEncodingException ex) {
    216                 throw new IllegalStateException(ex);
    217             }
     211            final String[] kvs = Utils.decodeUrl(kv).split("=", 2);
     212            r.put(kvs[0], kvs.length > 1 ? kvs[1] : null);
    218213        }
    219214        return r;
     
    275270    }
    276271
    277     protected static String decodeParam(String param) {
    278         try {
    279             return URLDecoder.decode(param, "UTF-8");
    280         } catch (UnsupportedEncodingException e) {
    281             throw new RuntimeException(e);
    282         }
    283     }
    284 
    285272    public void setSender(String sender) {
    286273        this.sender = sender;
     
    333320                String query = request.substring(request.indexOf('?') + 1);
    334321                if (query.indexOf("url=") == 0) {
    335                     args.put("url", decodeParam(query.substring(4)));
     322                    args.put("url", Utils.decodeUrl(query.substring(4)));
    336323                } else {
    337324                    int urlIdx = query.indexOf("&url=");
    338325                    if (urlIdx != -1) {
    339                         args.put("url", decodeParam(query.substring(urlIdx + 5)));
     326                        args.put("url", Utils.decodeUrl(query.substring(urlIdx + 5)));
    340327                        query = query.substring(0, urlIdx);
    341328                    } else if (query.indexOf('#') != -1) {
     
    346333                        int eq = param.indexOf('=');
    347334                        if (eq != -1) {
    348                             args.put(param.substring(0, eq), decodeParam(param.substring(eq + 1)));
     335                            args.put(param.substring(0, eq), Utils.decodeUrl(param.substring(eq + 1)));
    349336                        }
    350337                    }
Note: See TracChangeset for help on using the changeset viewer.