package org.herac.tuxguitar.community.browser; import java.io.OutputStreamWriter; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.util.Map.Entry; import org.herac.tuxguitar.community.auth.TGCommunityAuth; import org.herac.tuxguitar.community.utils.TGCommunityWeb; public class TGBrowserRequest { private static final String REMOTE_URL = (TGCommunityWeb.HOME_URL + "/rd.php/sharing/tuxguitar/browser.do"); private String request; public TGBrowserRequest(TGCommunityAuth auth) throws Throwable { this(auth, null); } public TGBrowserRequest(TGCommunityAuth auth, TGBrowserElementImpl element) throws Throwable { this.initialize(auth, element); } public TGBrowserResponse getResponse() throws Throwable { URL url = new URL(REMOTE_URL); URLConnection conn = url.openConnection(); conn.setDoOutput(true); OutputStreamWriter outputStream = new OutputStreamWriter(conn .getOutputStream()); outputStream.write(this.request); outputStream.flush(); outputStream.close(); return new TGBrowserResponse(conn.getInputStream()); } private void initialize(TGCommunityAuth auth, TGBrowserElementImpl element) throws Throwable { this.request = new String(); this.request += URLEncoder.encode("auth", "UTF-8"); this.request += ("="); this.request += URLEncoder.encode(auth.getAuthCode(), "UTF-8"); if (element != null) { for (final Entry<String, String> property : element.getProperties() .entrySet()) { this.request += ("&"); this.request += URLEncoder.encode((String) property.getKey(), "UTF-8"); this.request += ("="); this.request += URLEncoder .encode((String) property.getValue(), "UTF-8"); } } } }