اگر جاوا کار هستید حتما برایتان پیش آمده که بخواهید با برنامه خود فایلی از اینترنت دانلود کنید یا با سروری ارتباط برقرار کنید، برای مثال میخواهید یک فرم ورود برای نرم افزار خود بنویسید، خب برای اینکار نیازمند ارسال نام کاربری و رمزعبور یه سرور و خواندن مقدار برگشتی سرور برای ارسال خود هستید.
ابتدا می بایست یک کانکشن بین برنامه خود و سرور ایجاد کنید تا مسیری برای ارسال اطلاعات و دریافت نتیجه داشته باشیم.


URL url = null;  
HttpURLConnection connection;
try
{
    url = new URL("Your Link");
    connection = (HttpURLConnection) url.openConnection();
}
catch(IOException e)
{
    System.out.println(e.getMessage());
    // Error
}

قدم بعدی برای رسیدن به هدف ایجاد مسیری برای ارسل اطلاعات و مشخص کردن نحوه ارسال اطلاعات است.


URL url = null;
HttpURLConnection connection;
OutputStreamWriter request = null;
try
{
    url = new URL("Your Link");
    connection = (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    connection.setRequestMethod("POST");    

    request = new OutputStreamWriter(connection.getOutputStream());

}
catch(IOException e)
{
    System.out.println(e.getMessage());
    // Error
}

تا اینجای کار هم یا کانکشن داریم هم یه مسیر برای ارسال اطلاعات، کاری که باید انجام بدیم ارسال اطلاعات و در نهایت خواندن نتیجه یا ریسپانس سرور
کد زیر کد نهایی ماست برای ارسال نام و رمز برای سرور و گرفتن مقدار بازگشتی سرور که همون متغییر response هست.


URL url = null;
HttpURLConnection connection;
OutputStreamWriter request = null;

String response = null;         
String parameters = "user="+mUsername+"&pass="+mPassword;   

try
{
    url = new URL("Your Link");
    connection = (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    connection.setRequestMethod("POST");    

    request = new OutputStreamWriter(connection.getOutputStream());
    request.write(parameters);
    request.flush();
    request.close();            
    String line = "";               
    InputStreamReader isr = new InputStreamReader(connection.getInputStream());
    BufferedReader reader = new BufferedReader(isr);
    StringBuilder sb = new StringBuilder();
    while ((line = reader.readLine()) != null)
    {
        sb.append(line + "\n");
    }
    // Response from server after login process will be stored in response variable.                
    response = sb.toString();
    System.out.println(response);

    isr.close();
    reader.close();

}
catch(IOException e)
{
    System.out.println(e.getMessage());
    // Error
}