آموزش اندروید
ارسال اطلاعات به سرور (نحوه پست کردن اطلاعات به سرور)
در این آموزش ما یاد خواهیم گرفت که چگونه با استفاده از متد post ،درخواست یا همان request به سرور ارسال کنیم و اطلاعات مورد نیاز(response )را از آن دریافت کنیم.
برای اجرای عملیات ارسال داده ها از کلاس AsyncTask استفاده کرده ایم. اگر دانش کافی در خصوص نحوه استفاده از این کلاس را ندارید اینجا را کلیک کنید.
در متد doInBackground این کلاس ابتدا آدرس سرور خودمان را تعریف می کنیم . در واقع آدرس URL همان آدرسی است که اطلاعات کاربران به آن آدرس ارسال خواهد شد و فایل php در آدرس زیر که در سمت سرور قرار دارد قرار است اطلاعات را از کاربران دریافت کند.
URL url = new URL(“http://psrd.ir/app/post_toserver.php”);
دومین گام فراخوانی کلاس JSONObject برای تعریف نام ها و ارزش گذاری های آنهاست . این کلاس مجموعه ای قابل تغییر از نام / ارزش گذاری. نامها منحصر به فرد هستند و رشته های غیر صفر دارند. مقادیر و ارزش گذاری ها ممکن است ترکیبی از JSONObjects، JSONArrays، رشته ها، Booleans، Integers، Longs، Doubles یا NULL باشد. مقادیر ممکن است null، NaNs، infinities، یا هر نوعی که در اینجا ذکر نشده اند باشد.
JSONObject postDataParams = new JSONObject();
postDataParams.put(“name”, name);
postDataParams.put(“family”, family);
سومین گام اتصال به URl یا سرور با استفاده از HttpURLConnection است :
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
چهارمین گام :
تعریف تایم و زمان اتصال و خواندن کانکشن، تعریف متد ارسالی که به روش post می باشد و Set یا آماده کردن عملیات های Input و Output در کانکشن تعریف شده.
conn.setReadTimeout(15000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod(“POST”);
conn.setDoInput(true);
conn.setDoOutput(true);
پنچمین گام :
فراخوانی OutputStream کانکشن به منظور رایت کردن محتویات ارسالی بوسیله BufferedWriter
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(os, “UTF-8”)); writer.write(getPostDataString(postDataParams));
ششمین گام :
گرفتن پاسخ response از کانکشن و خواندن استریم ها با استفاده BufferedReader و نهایتا الحاق آن به استرینگ بافر
int responseCode=conn.getResponseCode();
if (responseCode == HttpsURLConnection.HTTP_OK) {
BufferedReader in=new BufferedReader(new InputStreamReader( conn.getInputStream()));
StringBuffer sb = new StringBuffer(“”); String line=””;
while((line = in.readLine()) != null) {
sb.append(line);
break;
}
in.close();
return sb.toString();
}
بطور کلی آشنایی با ساختار کلی برنامه نویسی سوکت می تواند از جنبه های متعددی بر
ارزشمندی و کارایی پروژه ها بیفزاید لزوم بروزرسانی نرم افزارها ، مدیریت اطلاعات داخلی برنامه ، تعامل مستقیم کلاینت و سرور و … از جمله مواردی است که ضرورت آشنایی با چنین مباحثی را بیش از بیش روشن می سازد.