android - ভলির সাথে জসুপ কীভাবে ব্যবহার করবেন?




jsoup android-volley (2)

ভলি এবং জসুপ ব্যবহার করে যে কেউ একটি সাধারণ উদাহরণ লিখতে / যুক্ত করতে পারেন?

ফণা অধীনে, জসপ এইচটিপিআরএল সংযোগ ব্যবহার করে। এই শ্রেণিটি অ্যান্ড্রয়েড প্ল্যাটফর্মে অমীমাংসিত সমস্যা, বাগ এবং পারফরম্যান্স সম্পর্কিত সমস্যাগুলি জেনে গেছে।

পরিবর্তে, ভলির সাথে ডেটা লোড করুন প্রথমে জাসুপের সাথে এটি পার্স করুন।

কোডের উদাহরণ:

private static RequestQueue myRequestQueue = null;

public Document GetDocument(String site) throws Exception {   
   final Document[] doc = new Document[1];
   final CountDownLatch cdl = new CountDownLatch(1);

   StringRequest documentRequest = new StringRequest( //
        Request.Method.GET, //
        site, //
        new Response.Listener<String>() {
           @Override
           public void onResponse(String response) {
               doc[0] = Jsoup.parse(response);
               cdl.countDown();
           }
        }, //
        new Response.ErrorListener() {
           @Override
           public void onErrorResponse(VolleyError error) {
               // Error handling
               System.out.println("Houston we have a problem ... !");
               error.printStackTrace();
           }
        } //
   );

   if (myRequestQueue == null) {
       myRequestQueue = Volley.newRequestQueue(this);
   }

   // Add the request to the queue...
   myRequestQueue.add(documentRequest);

   // ... and wait for the document.
   // NOTE: Be aware of user experience here. We don't want to freeze the app...
   cdl.await();

   return doc[0];
}

তথ্যসূত্র

জসপ এবং অ্যাসিঙ্কটাস্কের সাথে আমার একটি কার্যকারী উদাহরণ রয়েছে এবং এটি দুর্দান্ত কাজ করে। আমি শুধু পারফরম্যান্সে সন্তুষ্ট নই। পাঠ্য এবং চিত্র সহ একটি সাধারণ তালিকা পৃষ্ঠা লোড করতে 3-6 সেকেন্ড সময় লাগে।

আমি কোনওভাবে পারফরম্যান্স বাড়াতে চাই ... তাই ভলিতে আমি হোঁচট খেয়েছি।

কেউ কি jsoup সহ ভলির ব্যবহারের জন্য গরম ব্যাখ্যা করতে পারেন?

আমি নির্দিষ্ট ইউআরএল ধারণ করে এমন ডক অবজেক্টটি পেতে এটি ব্যবহার করি:

 public Document GetDocument(String site) {      
        Document doc = Jsoup.connect(site).timeout(600000)
        .data("query", "Java")
        .userAgent("Mozilla")
        .get();

        return doc;
 }

আমার ধারণা আমি কেবল jsoup সহ ডেটা বিশ্লেষণ করব এবং ভলির সাথে সংযোগ / ডাউনলোড করব? আমি যখন Jsoup.connect (সাইট) .টাইমআউট (600000) ব্যবহার করি তখন আমার কি ভলির সাথে এটি করা উচিত?

ভলি এবং জসুপ ব্যবহার করে যে কেউ একটি সাধারণ উদাহরণ লিখতে / যুক্ত করতে পারেন?


স্টিফেনের উত্তরের সাথে আমি এই কোডটিতে কিছুটা পরিবর্তন করেছি এবং এটি দেখতে এটির মতো দেখাচ্ছে। আমি ইউটিএফ 8 সমর্থন যুক্ত করেছি যাতে এটি অন্যান্য ভাষা পড়তে পারে এবং পুনরায় চেষ্টা নীতি নির্দিষ্ট করে।

private static RequestQueue myRequestQueue = null;

public Document GetDocument(String site) {
    final Document[] doc = new Document[1];
    final CountDownLatch cdl = new CountDownLatch(1);
    try {

        StringRequest documentRequest = new StringRequest( //
                Request.Method.GET, //
                site, //
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        String newStr = null;
                        try {
                            newStr = URLDecoder.decode(URLEncoder.encode(response, "iso8859-1"), "UTF-8");
                        } catch (UnsupportedEncodingException e) {
                            e.printStackTrace();
                        }
                        doc[0] = Jsoup.parse(newStr);
                        cdl.countDown();
                    }
                }, //
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        // Error handling
                        System.out.println("Houston we have a problem ... !");
                        error.printStackTrace();
                    }
                } //
        );

        if (myRequestQueue == null) {
            myRequestQueue = Volley.newRequestQueue(MainActivity._Instance);

            documentRequest.setRetryPolicy(new DefaultRetryPolicy(5000,
                    DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
        }

        // Add the request to the queue...
        myRequestQueue.add(documentRequest);

        // ... and wait for the document.
        // NOTA: Be aware of user experience here. We don't want to freeze the app...
        cdl.await();
    }
    catch (Exception e) {
        Log.d("TMS", "Error parsing page " + site);
        e.printStackTrace();
        return null;
    }
    return doc[0];
}




android-volley