How to Use Jsoup with Volley

How to use Jsoup with Volley?

Can anyone write/link a simple example using volley and jsoup?

Under the hood, Jsoup make use of HttpUrlConnection. This class has known unresolved issues, bugs and performance issues on the Android Platform.

Instead, load the data with Volley first then parse it with Jsoup.

Sample Code:

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];
}

References

  • An Introduction to Volley
  • Transmitting Network Data Using Volley

Confused on how to parse HTML with Jsoup after making volley StringRequest

You can do it in this way:

Document doc = Jsoup.parse(html);
String postTitle = doc.select("h1.post-title").first().html();
String postContent = doc.select("div.post-content").first().html();

Take a look to the cookbook.

Access variable out of Volley onResponse Android

For anyone who may be seeking this thing in future , the answer to this problem is not by accessing variable out of volley request , but to call a synchronous request in an Asynchronous one . What i did was that inside an Async task i called a synchronous volley request and then called out a function on PostExecute .And this finally works

How to receive html response through volley

I think your response from your server is in html format.. in order to parse the html response in java there are some ways, But i personally like JSOUP you can also refer links this and this

First in your gradle file add the dependency

 compile 'org.jsoup:jsoup:1.8.3'  // new version is available i think.. 

Then parse the html attributes like for example.

 Document doc = JSoup.parse(response);
String id = doc.select("input[name=id]").attr("value");

Hope this helps..

Android Volley no Response from StringRequest

took me long enough, but there was no problem.
the code works, while debugging there were no response,
but when i run the app the request complete and i got the wanted response.

so if anyone have a similier problem, from some reason while debugging I dident get response but while running the app its working fine.
(simpley dident know that)

try this first before wasting time in debugging like i did.

Jsoup .data() inside loop

According to jsoup's apidoc you can send collections with data, so you can do something like this:

Map<String, String> myData = new HashMap<String, String>();
String key = "check_radio_yes_name[";
for (i=0; i<5; i++)
myData.put(key + i + "]", "1"); //add your data instead of "1"
upload_doc = Jsoup.connect(url)
.cookies(loginCookies)
.data(myData)...

Define all your data in a map, and then add the entire map.



Related Topics



Leave a reply



Submit