2011-08-20 21 views
16

Estoy usando JSoup para autenticarme y luego me conecto a un sitio web. Algunas URL tienen una respuesta JSON (porque parte del sitio está en AJAX). ¿Puede JSoup manejar la respuesta JSON?JSoup: solicitando la respuesta JSON

Connection.Response doc = Jsoup.connect("...") 
           .data(...) 
           .cookie(...) 
           .header(...) 
           .method(Method.POST) 
           .execute(); 
String result = doc.body() 

En mi caso body is "".

  • ¿Es porque JSoup no sabe cómo manejar JSON? (ofcourse no hay)
  • ¿O porque hay un error en mi pedido?

¿Hay JSoup como bibliotecas para JSON?

+0

Intenta usar esto: '.header (" Aceptar "," aplicación/json ")' – r3dst0rm

Respuesta

0

No creo que Jsoup ejecute Javascript. Si la URL provista devuelve cualquier texto que no sea html, creo que Jsoup simplemente lo envolverá en una etiqueta corporal o algo similar.

ver este post para una sugerencia

+1

Sí, por supuesto, JavaScript no se ejecuta. No estaba seguro de si la cadena JSON se envolverá en una etiqueta corporal o si se eliminará para que se adapte a un documento bien formado. –

0

Debe utilizar una biblioteca JSON para procesar datos JSON.

Éstos son algunos: Click

30

Usted puede recuperar JSON o cualquier otro formato de datos que utiliza este:

// JSON example 
String json = Jsoup.connect(url).ignoreContentType(true).execute().body(); 
3

Trate Como esta cabecera

Uso "Accept: text/javascript"

String InboxJson=Jsoup.connect("https://www.fiverr.com/conversations/Json") 
          .timeout(1000000) 
          .header("Accept", "text/javascript") 
          .userAgent("Mozilla/5.0 (Windows NT 6.1; rv:40.0) Gecko/20100101 Firefox/40.0") 
          .get() 
          .body() 
          .text();