PHP Code:
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.zip.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

public class 
Connection implements Serializable {
   static final 
long serialVersionUID 1L;
   
   
String domainreferer;
   
Map<String,Stringcookies;
   
   static 
String rpUseragent "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.14) Gecko/20080509 Firefox/2.0.0.14";
   static 
String rpAcceptText "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
   static 
String rpAcceptPng "image/png,image/*;q=0.8,*/*;q=0.5";
   static 
String rpAcceptLanguage "en-us,en;q=0.5";
   static 
String rpAcceptEncoding "gzip, deflate";
   static 
String rpAcceptCharset "ISO-8859-1,utf-8;q=0.7,*;q=0.7";
   static 
String rpKeepAlive "300";
   static 
String rpConnection "keep-alive";
   static 
String rpContentType "application/x-www-form-urlencoded";
   
   public 
ConnectionString domainMap<String,StringcookiesString referer ) {
      
this.domain domain;
      
this.cookies cookies;
      
this.referer referer;
   }
   
   public 
ConnectionString domainMap<String,Stringcookies ) {
      
thisdomaincookiesnull );
   }
   
   public 
ConnectionString domainString referer ) {
      
thisdomain, new HashMap<String,String>(), referer );
   }
   
   public 
ConnectionString domain ) {
      
thisdomain, new HashMap<String,String>(), null );
   }
   
   public 
String getString url ) {
      if( 
url.charAt) == '/' )
         
url domain url;
      
      try {
         
HttpURLConnection conn = (HttpURLConnection)( new URLurl.replaceAll" ""%20" ) ).openConnection() );
         
setRequestPropertiesconn );
         
conn.setRequestMethod"GET" );
         
referer url;
         return 
readconn );
      } catch( 
IOException e1 ) {
         
e1.printStackTrace();
         return 
null;
      }
   }
   
   public 
String postString urlString[][] data ) {
      if( 
url.charAt) == '/' )
         
url domain url;
      
      try {
         
HttpURLConnection conn = (HttpURLConnection)( new URLurl.replaceAll" ""%20" ) ).openConnection() );
         
setRequestPropertiesconn );
         
conn.setRequestMethod"POST" );
         
conn.setDoOutputtrue );
         
         
StringBuilder sb = new StringBuilder();
         
         for( 
int i 0data[0].lengthi++ )
            
sb.appendURLEncoder.encodedata[0][i], "UTF-8" ) ).append'=' ).appendURLEncoder.encodedata[1][i], "UTF-8" ) ).append'&' );
         
         
conn.setRequestProperty"Content-Type"rpContentType );
         
conn.setRequestProperty"Content-Length"Integer.toStringsb.length()-) );
         
         
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriterconn.getOutputStream() ) ) );
         
out.writesb.substring0sb.length()-) );
         
out.close();
         
         
referer url;
         return 
readconn );
      } catch( 
IOException e1 ) {
         
e1.printStackTrace();
         return 
null;
      }
   }
   
   public 
BufferedImage getImageString url ) {
      try {
         
HttpURLConnection conn = (HttpURLConnection)( new URL( ( url.charAt) == '/' domain+url url ).replaceAll" ""%20" ) ).openConnection() );
         
setRequestPropertiesconn );
         
conn.setRequestMethod"GET" );
         
conn.setRequestProperty"Accept"rpAcceptPng );
         return 
ImageIO.readconn.getInputStream() );
      } catch( 
IOException e1 ) {
         
e1.printStackTrace();
         return 
null;
      }
   }
   
   public 
boolean hasCookieString key ) {
      return 
cookies.containsKeykey );
   }
   
   public 
String getCookieString() {
      
StringBuilder sb = new StringBuilder();
      
      for( 
String s cookies.keySet() )
         
sb.append).append'=' ).appendcookies.get) ).append';' );
      
      return 
sb.toString();
   }
   
   private 
void setRequestPropertiesHttpURLConnection conn ) {
      
conn.setInstanceFollowRedirectsfalse );
      
conn.setRequestProperty"User-Agent"rpUseragent );
      
conn.setRequestProperty"Accept"rpAcceptText );
      
conn.setRequestProperty"Accept-Language"rpAcceptLanguage );
      
conn.setRequestProperty"Accept-Encoding"rpAcceptEncoding );
      
conn.setRequestProperty"Accept-Charset"rpAcceptCharset );
      
conn.setRequestProperty"Keep-Alive"rpKeepAlive );
      
conn.setRequestProperty"Connection"rpConnection );
      
      if( 
referer != null && referer.length() != )
         
conn.setRequestProperty"Referer"referer );
      
      if( 
cookies != null && cookies.size() != )
         
conn.setRequestProperty"Cookie"getCookieString() );
   }
   
   private 
String readHttpURLConnection conn throws IOException {
      
BufferedReader in null;
      
      if( 
conn.getContentEncoding() == null )
         
in = new BufferedReader( new InputStreamReaderconn.getInputStream() ) );
      else
         if( 
conn.getContentEncoding().equalsIgnoreCase"gzip" ) )
            
in = new BufferedReader( new InputStreamReader( new GZIPInputStreamconn.getInputStream() ) ) );
         else if( 
conn.getContentEncoding().equalsIgnoreCase"deflate" ) )
            
in = new BufferedReader( new InputStreamReader( new InflaterInputStreamconn.getInputStream(), new Inflatertrue ) ) ) );
      
      
StringBuilder sb = new StringBuilder();
      
String s;
      
      while( ( 
in.readLine() ) != null )
         
sb.append).append'\n' );
      
      
putCookiesconn.getHeaderFields().get"Set-Cookie" ) );
      return 
sb.toString();
   }
   
   private 
void putCookies( List<StringcookieList ) {
      if( 
cookieList == null )
         return;
      
      
int index;
      
      for( 
String cookie cookieList )
         
cookies.putcookie.substring0index cookie.indexOf'=' ) ), cookie.substringindex+1cookie.indexOf';'index ) ) );
   }

Not written by me, I found it : Here