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

وب سرویس HttpUrlConnection (حل شده و مورد استفاده)

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

با سلام :

من این وب سرویس رو پیاده سازی کردم و می خوام به جای String params بتونم ArrayList ست کنم. ولی نتونستم . کسی میتونه کمک کنه؟ اگر هم اشکالی در این وب سرویس هست بگید لطفا .

 public class Webservice {

    public static String readUrl(String url, String params) {
        HttpURLConnection connect = null;
        try {
            //Create connection
            URL mylink = new URL(url);
            connect = (HttpURLConnection) mylink.openConnection();
            connect.setRequestMethod("GET");
            connect.setRequestMethod("POST");
            connect.setReadTimeout(10000);
            connect.setConnectTimeout(15000);
            connect.setDoInput(true);
            connect.setDoOutput(true);

            //Send request
            if (params != null) {

                OutputStream os = connect.getOutputStream();
                BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
                writer.write(params);
                writer.flush();
                writer.close();
                os.close();
            }

            //Get Response
            BufferedReader reader = new BufferedReader(new InputStreamReader(connect.getInputStream(), "UTF-8"));
            StringBuilder sb = new StringBuilder();
            String line = null;

            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }

            Log.i("LOG", " Data Line: " + sb.toString());
            reader.close();
            return sb.toString();
        } catch (Exception e) {
            e.printStackTrace();

        } finally {
            if (connect != null) {
                connect.disconnect();
            }
        }
        return null;
    }
}

نظرات

علی 10 سال پیش
به کمک دوستان عزیز احتیاج دارم لطفا راهنمایی کنید تا بتونم وب سرویس رو کامل کنم.
Spirit 10 سال پیش
این دو کلمه رو گشتی؟ "httpurlconnection arraylist"

پاسخ‌ها 1

علی 10 سال پیش

الان اینجوری درست شد با راهنمایی شما نصرتی جان : 

هر کسی دوست داره از این وب سرویس استفاده کنه برای API بالا تر از 22 !

 public class Webservice{

    public static String readUrl(String url,Map<String,String> params) {
        HttpURLConnection connect = null;
        try {

            //Create connection
            URL myLink = new URL(url);
            connect = (HttpURLConnection) myLink.openConnection();
            connect.setRequestMethod("GET");
            connect.setRequestMethod("POST");
            connect.setReadTimeout(10000);
            connect.setConnectTimeout(15000);
            connect.setDoInput(true);
            connect.setDoOutput(true);

            //Send request
            if (params != null) {

                String paramsString = getEncodedData(params);

                OutputStream os = connect.getOutputStream();
                BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
                writer.write(paramsString);
                writer.flush();
                writer.close();
                os.close();
            }

            //Get Response
            BufferedReader reader = new BufferedReader(new InputStreamReader(connect.getInputStream(), "UTF-8"));
            StringBuilder builder = new StringBuilder();
            String line = null;

            while ((line = reader.readLine()) != null) {
                builder.append(line);
            }

            Log.i("LOG", " Data Line: " + builder.toString());

            reader.close();
            return builder.toString();

        } catch (Exception e) {
            e.printStackTrace();

        } finally {
            if (connect != null) {
                connect.disconnect();
            }
        }
        return null;
    }

    // Get Encode Data
    private static String getEncodedData(Map<String,String> data) {
        StringBuilder sb = new StringBuilder();
        for (String key : data.keySet()) {
            String value = null;
            try {
                value = URLEncoder.encode(data.get(key), "UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }

            if (sb.length() > 0)
                sb.append("&");

            sb.append(key + "=" + value);
        }
        return sb.toString();
    }
}


    این هم برای صدا زدن 
String url = "http://192.168.1.1/login.php"; Map<String,String> params = new HashMap<>(); params.put("email", usertext.getText().toString()); params.put("password", passtext.getText().toString()); String result = Webservice.readUrl(url,params);

نظرات

RODER 10 سال پیش
تستش نکردم چون با گوشی اومدم سایت رو ببینم. خب به نظر که خوب میاد کد ها اما میشه لطفا خط به خطشو توضیح بدی؟ مرسی علی جون
khanbeiki 10 سال پیش
لینک این آدرس رو میفرستم ، خالی برمیگردونه ، در صورتی که اطلاعات هست ، وقتی مقدار های get رو انگلیسی میکنم درست میشه - مشکل از فارسی است ، فکر کنم فارسی رو در هم ارسال میکنه
khanbeiki 10 سال پیش
لینک =گلستان&city;=گرگان" این آدرس رو میفرستم ، خالی برمیگردونه ، در صورتی که اطلاعات هست ، وقتی مقدار های get رو انگلیسی میکنم درست میشه - مشکل از فارسی است ، فکر کنم فارسی رو در هم ارسال میکنه

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