بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

Jason درس 12 استاد - خواهشا اگه بلدین کمک کنید ، گیر اینم

مدیریت گفتگو
تیرداد 11 سال پیش
آخرین تغییر: 10 سال پیش

دقیقا کد های درس 12 استاد ،  واسه خوندن جسیون ، نمیدونم چرا کرش میشه

دقیقا همونه رو نوشتم ، لینک جیسون درسته ، با FireFox که میرم جیسون رو نشون میده

 

public class Webservice {
    public static String readUrl(String url) {
        try {
            HttpClient client = new DefaultHttpClient();
            HttpPost method = new HttpPost(url);

            HttpResponse response = client.execute(method);
            InputStream inputStream = response.getEntity().getContent();
            String result = convertInputStreamToString(inputStream);
            return result;
        }
        catch (ClientProtocolException e) {
            e.printStackTrace();
        }
        catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }
    private static String convertInputStreamToString(InputStream inputStream) {
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            StringBuilder builder = new StringBuilder();
            String line = "";
            while ((line = reader.readLine()) != null) {
                builder.append(line);
            }
            return builder.toString();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
       return null;
    }

---------------------------------------------------------------------

public class ActivityUpdate extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.update_layout);
        // TODO Auto-generated method stub
        String result = Webservice.readUrl("http://192.168.1.100/akaskhoone/");
        if (result != null)
        {
            try {
                JSONArray tasks = new JSONArray(result);
                for (int i = 0; i < tasks.length(); i++) {
                    JSONObject task = tasks.getJSONObject(i);
                    Log.i("LOG", task.getString("name"));
                }
            }
            catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
}
}

نظرات

hosseinAmini 11 سال پیش
مجوز دسترسی به اینترنت رو نوشتید؟؟
تیرداد 11 سال پیش
بله احتمال نداره از ویندوزم باشه ؟ Windowb-10 تازه ریختم
moin 11 سال پیش
عزیز ارورای داخل لاگتو بذار
Criss 11 سال پیش
بجای HttpPost از HttpGet استفاده کن ببین درست میشه
تیرداد 11 سال پیش
ضمن تشکر از همه دوستان عزیز که محبت کردن جواب دادن ، طبق دستوراتی که آقای hamedjj نوشتن عمل کردم ، درست شد - ممنون از همه
moin 11 سال پیش
آقا تیرداد ارورات بذار ببینیم چی بوده ، Network main thread Exception بود ؟

پاسخ‌ها 3

حامد 11 سال پیش

برای اتصال به سرور در ورژن های بالاتر اندروید باید از Thread استفاده کنید :

 Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
HttpClient client = new DefaultHttpClient();
            HttpPost method = new HttpPost(url);             HttpResponse response = client.execute(method);
            InputStream inputStream = response.getEntity().getContent();
            String result = convertInputStreamToString(inputStream);
            return result;

} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}

}
});
thread.start();

نظرات

hassan 10 سال پیش
سلام ببخشید تابع تو این ترد void است چیزی بر نمیگردونه اما شما مقدار result رو return کردین از من برا همین ایراد میگیره میشه بگین چیکار کنم
میرحسین 10 سال پیش

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().permitAll().build());

کافیه فقط همین کد رو بعد

try {

متود readUrl در کلاس WebSrvice قرار بدی و اجرا کنی پروژت رو

موفق باشی

نظرات

konda 10 سال پیش
سلام، من اینو انجام دادم، ولی هنوزم به return result 'گیر میدهً!!!!
perin 10 سال پیش
سلام وقتتون بخیر دوستان.ببخشید تاپیک و میارم بالا. ولی من همینو انجام دادم ولی درست نشد
perin 10 سال پیش

من اینطوری نوشتم ببینید. منظور پاسخ بالا همین نبود

 public class Webservice {

public static void readUrl(final String url, final ArrayList<NameValuePair> params) {

Thread thread = new Thread(new Runnable() {

@Override
public void run() {

try {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().permitAll().build());
HttpClient client = new DefaultHttpClient();
HttpPost method = new HttpPost(url);

if (params != null) {
// method.setEntity(new UrlEncodedFormEntity(params));
method.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
}

HttpResponse response = client.execute(method);
InputStream inputStream = response.getEntity().getContent();
String result = convertInputStreamToString(inputStream);
return result;// اینجا ارور دارم بازم

}

catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
catch (JSONException e) {
e.printStackTrace();
}

}

});
thread.start();
}

نظرات

حمید زمانی 10 سال پیش
به جای Return از Listener استفاده کن ، اگه اطلاعاتی در این خصوص نداری ،آموزش ماژول وب سرویس رو ببین.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .