Java: come utilizzare UrlConnection per inviare una richiesta con authorization?

Vorrei generare una richiesta POST su un server che richiede l’autenticazione. Ho provato ad usare il seguente metodo:

private synchronized String CreateNewProductPOST (String urlString, String encodedString, String title, String content, Double price, String tags) { String data = "product[title]=" + URLEncoder.encode(title) + "&product[content]=" + URLEncoder.encode(content) + "&product[price]=" + URLEncoder.encode(price.toString()) + "&tags=" + tags; try { URL url = new URL(urlString); URLConnection conn; conn = url.openConnection(); conn.setRequestProperty ("Authorization", "Basic " + encodedString); conn.setDoOutput(true); conn.setDoInput(true); OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); wr.write(data); wr.flush(); // Get the response BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = rd.readLine()) != null) { // Process line... } wr.close(); rd.close(); return rd.toString(); } catch (MalformsdURLException e) { e.printStackTrace(); return e.getMessage(); } catch (IOException e) { e.printStackTrace(); return e.getMessage(); } } 

ma il server non riceve i dati di authorization. La riga che dovrebbe aggiungere dati di authorization è la seguente:

 conn.setRequestProperty ("Authorization", "Basic " + encodedString); 

e la linea

 BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 

genera anche IOException.

Ad ogni modo sarei molto grato se qualcuno potesse suggerire qualche correzione della logica sopra per abilitare l’authorization usando POST con UrlConnection.

ma ovviamente non funziona come dovrebbe, anche se se la stessa logica viene utilizzata per la richiesta GET, tutto funziona correttamente.