دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(26)_برمجة تطيقات الجوال (8_الاتصال بالويب web)!
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: برمجة تطبيقات الجوال Java ME
صفحة 1 من اصل 1 • شاطر
دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(26)_برمجة تطيقات الجوال (8_الاتصال بالويب web)!
بسم الله الرحمن الرحيم
إخوانى الكرام أهلا وسهلا بكم ....فى هذا الدرس إن شاء الله تعالى سنتعلم سويا كيفيه الاتصال بالانترنت و الشبكات من جوالك وذلك من خلال المكتبة javax.microedition.io و التى تمكنك من عمليه الاتصال بالشبكات و المكتبة java.io والتى توفر الإدخال / الإخراج (I / O) في مختلف الطبقات والواجهات ونظام البيانات والجداول ....أولا :الاتصال بشبكات HTTP
شبكات HTTP لمن لا يعرفها هى الشبكات التى تستخدم البروتوكول (HTTP/Hypertext Transfer Protocol):وهو المستخدم لنقل الملفات النصية أو النصوص الكبيرة عبر الإنترنت وهذا البروتوكول هو مثال واضح حيث يظهر لنا في شريط العنوان في متصفحات الإنترنت [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]....ومعظم مواقع الويب تستخدم هذا البروتوكول
ويمكنك الاتصال بتلك الشبكات من خلال الحزمة javax.microedition.io وذلك باستخدام الكائن
javax.microedition.io.HttpConnection
يتم إرجاع HttpConnection من Connector.open عندما يتم الوصول إلى رابط " [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] .....وذلك على النحو التالى :- الكود:
String url = "http://jonathanknudsen.com/simple";
InputConnection ic = (InputConnection)Connector.open(url);
InputStream in = ic.openInputStream();
// Read stuff from the InputStream
ic.close();
وكما ترون فى الكود أعلاه قمنا بالاعلان عن متغير url وذلك لوضع رابط الاتصال بالويب ....ثم فتح هذا الرابط باستخدام الاسلوب Connector.open وقراءة البيانات من InputStream
مثال / نفترض أننا نريد الاتصال بصورة من موقع معين ....سيكون الحل على النحو التالى :
1_ قم بأنشاء مشروع جديد وليكن web ثم أنشىء كلاس بأسم mainForm مثلا
2_من خلال التويب FLow قم بإضافة نافذة
3_ قم باضافة أمر تحكم exitCommand و أجعل الخاصية label تساوى "إنهاء"
4_ أفتح صفحة الكود ستجد الكود الخاص بإنشاء الكلاس mainform كما يلى :
- الكود:
public class mainForm extends MIDlet implements CommandListener {
سنقوم بتعديل الكود السابق و ذلك بإضافة الواجهة Runnable ليصبح كما يلى :
- الكود:
public class mainForm extends MIDlet implements CommandListener,Runnable {
5_ نقوم باتسيراد المكتبات التالية :
- الكود:
import java.io.*;
import javax.microedition.io.*;
6_ وبما أن مشروعنا يحيتوى على الواجهة Runnable فلابد من إنشاء الطريقة Run وذلك على النحو التالى :
- الكود:
public void run() {
}
7_ داخل تلك الطريقة سنقوم بكتاية الاوامر اللازمة للاتصال للموقع و قراة الصورة و ذلك على النحو التالى :
_ نقوم بالاعلان عن كائنيين الاول من نوع HttpConnection و الذى سيقوم بالاتصال ببروتوكول http و الثانى من نوع DataInputStream و الذى سيقوم بقراءة البيانات ....على النحو التالى :
- الكود:
HttpConnection hc = null;
DataInputStream in = null;
_ نقوم بفتح الاتصال بالرابط و ذلك با ستخدام الكود التالى :
- الكود:
try {
String url = "http://xpedition009.com/simple/java.png";
hc = (HttpConnection) Connector.open(url);
_ نقوم بقراءة البيانات و ذلك باستخدام الكود التالى :
- الكود:
int length = (int) hc.getLength();
byte[] data = null;
if (length != -1) {
data = new byte[length];
in = new DataInputStream(hc.openInputStream());
in.readFully(data);
} else {
int chunkSize = 512;
int index = 0;
int readLength = 0;
in = new DataInputStream(hc.openInputStream());
data = new byte[chunkSize];
do {
if (data.length < index + chunkSize) {
byte[] newData = new byte[index + chunkSize];
System.arraycopy(data, 0, newData, 0, data.length);
data = newData;
}
readLength = in.read(data, index, chunkSize);
index += readLength;
} while (readLength == chunkSize);
length = index;
}
كما تلاحظ فى الكود أعلاه ....فى السطر الاول قمنا بالاعلان عن المتغير length لتخزين بيانات الملف فيه وذلك باستخدام الاسلوب getLength لكائن الاتصال hc ....بعد ذلك قمنا بعمل مصفوفة من نوع byte وهى data ...بعد ذلك استخدمنا جملة شرطية للتأكد من وجود بيانات للقراءة ...ويتم قراءة البيانات با استخدام DataInputStream(hc.openInputStream()) وعن طريق حلقة تكرارية يتم تخزين البيانات فى المصفوفة data
_ نقوم بتحويل البيانات التى تم تخزينها فى المصفوفة byte الى صورة و ذلك لكوننا قمنا بقراءة الصورة كبايتات ....وذلك على النحو التالى :
- الكود:
Image image = Image.createImage(data, 0, length);
ImageItem imageItem = new ImageItem(null, image, 0, null);
form.append(imageItem);
أذن الكود بالكامل لتلك الطريقة سيكون على النحو التالى :
- الكود:
public void run() {
HttpConnection hc = null;
DataInputStream in = null;
try {
String url = "http://xpedition009.com/simple/java.png";
hc = (HttpConnection) Connector.open(url);
int length = (int) hc.getLength();
byte[] data = null;
if (length != -1) {
data = new byte[length];
in = new DataInputStream(hc.openInputStream());
in.readFully(data);
} else {
int chunkSize = 512;
int index = 0;
int readLength = 0;
in = new DataInputStream(hc.openInputStream());
data = new byte[chunkSize];
do {
if (data.length < index + chunkSize) {
byte[] newData = new byte[index + chunkSize];
System.arraycopy(data, 0, newData, 0, data.length);
data = newData;
}
readLength = in.read(data, index, chunkSize);
index += readLength;
} while (readLength == chunkSize);
length = index;
}
Image image = Image.createImage(data, 0, length);
ImageItem imageItem = new ImageItem(null, image, 0, null);
form.append(imageItem);
form.setTitle("تم التحميل");
} catch (IOException ioe) {
StringItem stringItem = new StringItem(null, ioe.toString());
form.append(stringItem);
form.setTitle("Done.");
} finally {
try {
if (in != null) {
in.close();
}
if (hc != null) {
hc.close();
}
} catch (IOException ioe) {
}
}
}
_ بعد ذلك نقوم بتحديد الطريقة startApp ثم نكتب الكود التالى وهو المسؤل عن تشغيل الطريقه أعلاه RUN وذلك على النحو التالى :
- الكود:
Thread t = new Thread(this);
t.start();
و النتيجة كما فى الصورة التالية :
- الكود:
HttpConnection hc = null;
InputStream is = null;
try {
hc = (HttpConnection) Connector.open("http://google.com");
strItem.setText("جارى التحميل....");
hc.setRequestMethod(HttpConnection.GET);
if (hc.getResponseCode() == HttpConnection.HTTP_OK) {
String str;
is = hc.openInputStream();
int length = (int) hc.getLength();
if (length != -1) {
byte incomingData[] = new byte[length];
is.read(incomingData);
str = new String(incomingData);
} else {
ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
int ch;
while ((ch = is.read()) != -1) {
bytestream.write(ch);
}
str = new String(bytestream.toByteArray());
bytestream.close();
}
form.append(str);
}else{
strItem.setText("غير قادر على الفتح");
}
} catch (Exception exe) {
} finally {
if (is != null) {
try {
is.close();
} catch (Exception error) {
}
}
if (hc != null) {
try {
hc.close();
} catch (Exception error) {
}
}
}
}
الكود أسهل من سابقه ....لكن عند تشغيلك لهذا الكود ستجد صفحة الويب هكذا
الى هنا نكون قد انتهينا من هذا الدرس لنا لقاء اخر فى نفس الموضوع أن شاء الله تعالى
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(26)_برمجة تطيقات الجوال (8_الاتصال بالويب web)!
شكرا لك أستاذ أحمد ....لكن كيف يمكن التغلب على مشكلة دعم html عند فتح موقع ويب ؟
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(26)_برمجة تطيقات الجوال (8_الاتصال بالويب web)!
مساء الخير .....أحب أبدى إعجابى الشديد بهذا المنتدى الاكثر من رائع .....وكنت بسأل عن معلومات كافية أو شرح تفصيلى على الحزمة java.io
لمار عادل- ..
- تاريخ التسجيل : 29/05/2013
المساهمات : 28
النقاط : 46
التقيم : 2
الدولة :
الجنس :
رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(26)_برمجة تطيقات الجوال (8_الاتصال بالويب web)!
الاخت زهراء ....إن شاء الله قريبا جدا سأحاول البحث عن كيفية دعم Html للجوال ...خصوصا لما فتحت مشروعك الذى قمتى برفعه لاحد الزملاء فهو فيه بعض الاكواد التى سنتعمد عليها إن شاء الله تعالى
الاخت لمار ....بداية أهلا وسهلا بيك فى هذا المنتدى المتواضع و اتمنى أن نكون عند حسن ظنك .....بالنسبة لسؤالك غدا أو بعد غد على الاكثر ستجدين فى هذا المنتدى شرح تفصلي لتلك الحزمة ....فأرجوا الاعتذار
الاخت لمار ....بداية أهلا وسهلا بيك فى هذا المنتدى المتواضع و اتمنى أن نكون عند حسن ظنك .....بالنسبة لسؤالك غدا أو بعد غد على الاكثر ستجدين فى هذا المنتدى شرح تفصلي لتلك الحزمة ....فأرجوا الاعتذار
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(26)_برمجة تطيقات الجوال (8_الاتصال بالويب web)!
انا ممنونة ليك كتير يا استاذ أحمد
لمار عادل- ..
- تاريخ التسجيل : 29/05/2013
المساهمات : 28
النقاط : 46
التقيم : 2
الدولة :
الجنس :
رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(26)_برمجة تطيقات الجوال (8_الاتصال بالويب web)!
java.io
java.io
java.io
java.io
java.io
java.io
java.io
لمار عادل- ..
- تاريخ التسجيل : 29/05/2013
المساهمات : 28
النقاط : 46
التقيم : 2
الدولة :
الجنس :
رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(26)_برمجة تطيقات الجوال (8_الاتصال بالويب web)!
لمار عادل كتب:java.io
java.io
java.io
java.io
الفاضلة لمار ....أرجوا المعذرة على كل ذلك التأخير فى الرد عليك و ذلك لكونى فى الفترة الماضية حصلت بعض الظروف الصعبة التى منعتنى من كتابة اى درس فى المنتدى و أوعدك أن بعد ذلك لن نتأخر عليكم فى الرد ....و اليك شرح على JAVA .IO على الرابط التالى
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(26)_برمجة تطيقات الجوال (8_الاتصال بالويب web)!
.أرجوا المعذرة على كل ذلك التأخير فى الرد عليك و ذلك لكونى فى الفترة
الماضية حصلت بعض الظروف الصعبة التى منعتنى من كتابة اى درس فى المنتدى
حمد الله على السلامة يا عمنا
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
NEXT- الادارة
- تاريخ التسجيل : 18/02/2011
المساهمات : 446
النقاط : 200660
التقيم : 28
الدولة :
الجنس :
رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(26)_برمجة تطيقات الجوال (8_الاتصال بالويب web)!
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط][/quote[/url]]أحمد مناع كتب:
الفاضلة لمار ....أرجوا المعذرة على كل ذلك التأخير فى الرد عليك و ذلك لكونى فى الفترة الماضية حصلت بعض الظروف الصعبة التى منعتنى من كتابة اى درس فى المنتدى و أوعدك أن بعد ذلك لن نتأخر عليكم فى الرد ....و اليك شرح على JAVA .IO على الرابط التالى
[url=https://egy-tech.forumegypt.net/t431-topic#1059
الله يبارك فيك اخى الكريم ....
لمار عادل- ..
- تاريخ التسجيل : 29/05/2013
المساهمات : 28
النقاط : 46
التقيم : 2
الدولة :
الجنس :
رد: دورة الجافا الرسومية بأستخدام NetBeans ...الدرس(26)_برمجة تطيقات الجوال (8_الاتصال بالويب web)!
للرفع
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
NEXT- الادارة
- تاريخ التسجيل : 18/02/2011
المساهمات : 446
النقاط : 200660
التقيم : 28
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: برمجة تطبيقات الجوال Java ME
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 7:09 pm من طرف moslema_r
» شركة تنظيف فرشات بالرياض
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد