Index: /applications/editors/josm/plugins/tag2link/src/org/openstreetmap/josm/plugins/tag2link/action/OpenLinkAction.java
===================================================================
--- /applications/editors/josm/plugins/tag2link/src/org/openstreetmap/josm/plugins/tag2link/action/OpenLinkAction.java	(revision 32940)
+++ /applications/editors/josm/plugins/tag2link/src/org/openstreetmap/josm/plugins/tag2link/action/OpenLinkAction.java	(revision 32941)
@@ -19,11 +19,10 @@
 
 import java.awt.event.ActionEvent;
-import java.io.FileOutputStream;
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStreamWriter;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
 import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 
 import org.openstreetmap.josm.Main;
@@ -32,4 +31,5 @@
 import org.openstreetmap.josm.plugins.tag2link.data.Link;
 import org.openstreetmap.josm.plugins.tag2link.data.LinkPost;
+import org.openstreetmap.josm.tools.HttpClient;
 import org.openstreetmap.josm.tools.OpenBrowser;
 
@@ -37,5 +37,4 @@
  * Action allowing to open a general link.
  * @author Don-vip
- *
  */
 @SuppressWarnings("serial")
@@ -58,11 +57,4 @@
             try {
                 LinkPost lp = (LinkPost) link;
-                System.out.println("Sending POST request to "+lp.url);
-                HttpURLConnection conn = (HttpURLConnection) new URL(lp.url).openConnection();
-                conn.setDoOutput(true);
-                conn.setRequestMethod("POST");
-                for (String header : lp.headers.keySet()) {
-                    conn.setRequestProperty(header, lp.headers.get(header));
-                }
                 String data = "";
                 for (String param : lp.params.keySet()) {
@@ -72,17 +64,9 @@
                     data += param+"="+lp.params.get(param);
                 }
-                try (OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream())) {
-                    osw.write(data);
-                    osw.flush();
-                }
                 
                 String filename = "output.pdf";// FIXME: should work for PDF files only (not even tested)
-                try (FileOutputStream fos = new FileOutputStream(filename);
-                     InputStream is = conn.getInputStream()) {
-                    byte[] buffer = new byte[2048];
-                    int n = -1;
-                    while ((n = is.read(buffer)) > -1) {
-                        fos.write(buffer, 0, n);
-                    }
+                try (InputStream is = HttpClient.create(new URL(lp.url), "POST").setHeaders(lp.headers)
+                        .setRequestBody(data.getBytes(StandardCharsets.UTF_8)).connect().getContent()) {
+                    Files.copy(is, new File(filename).toPath());
                 }
                 
@@ -92,7 +76,4 @@
                     Main.error(result);
                 }
-                
-            } catch (MalformedURLException ex) {
-                Main.error(ex);
             } catch (IOException ex) {
                 Main.error(ex);
