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

simplify URL encoding/decoding

Location:
trunk/src/org/openstreetmap/josm/io
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/ChangesetQuery.java

    r8291 r8304  
    44import static org.openstreetmap.josm.tools.I18n.tr;
    55
    6 import java.io.UnsupportedEncodingException;
    7 import java.net.URLEncoder;
    86import java.text.DateFormat;
    97import java.text.MessageFormat;
     
    1816import java.util.Map.Entry;
    1917
    20 import org.openstreetmap.josm.Main;
    2118import org.openstreetmap.josm.data.Bounds;
    2219import org.openstreetmap.josm.data.coor.LatLon;
     
    258255            sb.append("user").append("=").append(uid);
    259256        } else if (userName != null) {
    260             try {
    261                 sb.append("display_name").append("=").append(URLEncoder.encode(userName, "UTF-8"));
    262             } catch (UnsupportedEncodingException e) {
    263                 Main.error(e);
    264             }
     257            sb.append("display_name").append("=").append(Utils.encodeUrl(userName));
    265258        }
    266259        if (bounds != null) {
  • trunk/src/org/openstreetmap/josm/io/OsmApi.java

    r8291 r8304  
    1515import java.io.StringReader;
    1616import java.io.StringWriter;
    17 import java.io.UnsupportedEncodingException;
    1817import java.net.ConnectException;
    1918import java.net.HttpURLConnection;
     
    2120import java.net.SocketTimeoutException;
    2221import java.net.URL;
    23 import java.net.URLEncoder;
    2422import java.nio.charset.StandardCharsets;
    2523import java.util.Collection;
     
    815813            .append(latlon.lon())
    816814            .append("&text=")
    817             .append(urlEncode(text)).toString();
     815            .append(Utils.encodeUrl(text)).toString();
    818816
    819817        String response = sendRequest("POST", noteUrl, null, monitor, true, false);
     
    833831        String noteUrl = noteStringBuilder(note)
    834832            .append("/comment?text=")
    835             .append(urlEncode(comment)).toString();
     833            .append(Utils.encodeUrl(comment)).toString();
    836834
    837835        String response = sendRequest("POST", noteUrl, null, monitor, true, false);
     
    849847    public Note closeNote(Note note, String closeMessage, ProgressMonitor monitor) throws OsmTransferException {
    850848        initialize(monitor);
    851         String encodedMessage = urlEncode(closeMessage);
     849        String encodedMessage = Utils.encodeUrl(closeMessage);
    852850        StringBuilder urlBuilder = noteStringBuilder(note)
    853851            .append("/close");
     
    871869    public Note reopenNote(Note note, String reactivateMessage, ProgressMonitor monitor) throws OsmTransferException {
    872870        initialize(monitor);
    873         String encodedMessage = urlEncode(reactivateMessage);
     871        String encodedMessage = Utils.encodeUrl(reactivateMessage);
    874872        StringBuilder urlBuilder = noteStringBuilder(note)
    875873            .append("/reopen");
     
    897895        }
    898896    }
    899 
    900     /** URL encodes a string. Useful for transforming user input into URL query strings*/
    901     private String urlEncode(String string) throws OsmTransferException {
    902         try {
    903             return URLEncoder.encode(string, "UTF-8");
    904         } catch (UnsupportedEncodingException e) {
    905             Main.error(e, true);
    906             throw new OsmTransferException(tr("Error encoding string: {0}", string), e);
    907         }
    908     }
    909897}
  • trunk/src/org/openstreetmap/josm/io/remotecontrol/AddTagsDialog.java

    r8285 r8304  
    1111import java.awt.event.KeyEvent;
    1212import java.awt.event.MouseEvent;
    13 import java.io.UnsupportedEncodingException;
    14 import java.net.URLDecoder;
    1513import java.util.Collection;
    1614import java.util.HashMap;
     
    3634import org.openstreetmap.josm.gui.util.TableHelper;
    3735import org.openstreetmap.josm.tools.GBC;
     36import org.openstreetmap.josm.tools.Utils;
    3837
    3938/**
     
    263262                public void run() {
    264263                    String[] tags = null;
    265                     try {
    266                         tags = URLDecoder.decode(args.get("addtags"), "UTF-8").split("\\|");
    267                     } catch (UnsupportedEncodingException e) {
    268                         throw new RuntimeException(e);
    269                     }
     264                    tags = Utils.decodeUrl(args.get("addtags")).split("\\|");
    270265                    Set<String> tagSet = new HashSet<>();
    271266                    for (String tag : tags) {
  • trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadDataHandler.java

    r8191 r8304  
    55
    66import java.io.ByteArrayInputStream;
    7 import java.io.UnsupportedEncodingException;
    8 import java.net.URLEncoder;
    97import java.nio.charset.StandardCharsets;
    108
     
    6260    @Override
    6361    public String[] getUsageExamples() {
    64         try {
    65             final String data = URLEncoder.encode("<osm version='0.6'><node id='-1' lat='1' lon='2' /></osm>", "UTF-8");
    66             return new String[]{
    67                     "/load_data?layer_name=extra_layer&new_layer=true&data=" + data};
    68         } catch (UnsupportedEncodingException ex) {
    69             throw new IllegalStateException(ex);
    70         }
     62        final String data = Utils.encodeUrl("<osm version='0.6'><node id='-1' lat='1' lon='2' /></osm>");
     63        return new String[]{
     64                "/load_data?layer_name=extra_layer&new_layer=true&data=" + data};
    7165    }
    7266
  • 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.