Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 23rd, 2012  |  syntax: None  |  size: 1.95 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. package rishi.betacos;
  2.  
  3. import java.io.*;
  4. import java.net.*;
  5. import java.util.HashMap;
  6. import java.util.Iterator;
  7. import java.util.Map;
  8.  
  9. /**
  10.  *
  11.  * @author Rishi Shah
  12.  */
  13. public class BetacosConnection {
  14.    
  15.     private URL url;
  16.     private OutputStream out;
  17.    
  18.     public BetacosConnection(URL url, OutputStream out) {
  19.         this.url = url;
  20.         this.out = out;
  21.     }
  22.    
  23.     public void post(Map<String, String> map) throws IOException {
  24.         HttpURLConnection connection = (HttpURLConnection)url.openConnection();
  25.         connection.setDoOutput(true);
  26.        
  27.         OutputStreamWriter os = new OutputStreamWriter(connection.getOutputStream());
  28.        
  29.         Map<String, String> data = clean(map);
  30.         Iterator<String> keys = data.keySet().iterator();
  31.         StringBuilder query = new StringBuilder();
  32.        
  33.         while (keys.hasNext()) {
  34.             String key = keys.next();
  35.             query.append(key);
  36.             query.append("=");
  37.             query.append(data.get(key));
  38.             query.append("&");
  39.         }
  40.         query.deleteCharAt(query.length()-1);
  41.        
  42.         os.write(query.toString());
  43.         os.close();
  44.        
  45.         BufferedReader in = new BufferedReader(
  46.                                 new InputStreamReader(
  47.                                 connection.getInputStream()));
  48.         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
  49.                                
  50.         String decodedString = null;
  51.  
  52.         while ((decodedString = in.readLine()) != null) {
  53.             bw.write(decodedString);
  54.             bw.flush();
  55.         }
  56.        
  57.         in.close();
  58.     }
  59.    
  60.     private Map<String, String> clean(Map<String, String> data) throws UnsupportedEncodingException {
  61.         Iterator<String> keys = data.keySet().iterator();
  62.         Map<String, String> map = new HashMap<String, String>();
  63.        
  64.         while (keys.hasNext()) {
  65.             String key = keys.next();
  66.             String value = URLEncoder.encode(data.get(key), "UTF-8");
  67.             map.put(key, value);
  68.         }
  69.        
  70.         return map;
  71.     }
  72.    
  73. }