2017-10-10 5 views
-1

this websiteの左側にある最初の5つのトピックを取る必要があります。しかし、私はandroid studioの私のアンドロイドアプリにこのウェブサイトから何も得ることができません。私はjsoupライブラリとインターネットの許可を追加したので、問題はないと思っています。私はプログラムを実行すると、progressDialogが動作しますが、ウェブサイトからデータを取得しません。リストビューにデータを追加する必要がありますが、空の画面が表示されます。助けてくれてありがとう。ここでAndroidスタジオのウェブサイトからhtml解析を行うことができません

は私のアプリmain_activityクラスです:

package ahmety.wired; 

import android.app.ProgressDialog; 
import android.os.AsyncTask; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.select.Elements; 
import java.io.IOException; 
import java.util.ArrayList; 


public class MainActivity extends AppCompatActivity { 

private ListView lv; 
public ArrayList liste= new ArrayList(); 
private ArrayAdapter<String> adapter; 
private static String URL="https://www.wired.com/"; 
private ProgressDialog progressDialog; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    lv=(ListView)findViewById(R.id.list); 
    adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,liste); 
    new VeriGetir().execute(); 
} 

private class VeriGetir extends AsyncTask<Void, Void, Void> { 

@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 

    progressDialog= new ProgressDialog(MainActivity.this); 
    progressDialog.setTitle("WIRED"); 
    progressDialog.setMessage("Loading.."); 
    progressDialog.setIndeterminate(false); 
    progressDialog.show(); 

} 

@Override 
protected Void doInBackground(Void... voids) { 

    try { 
     Document doc = Jsoup.connect(URL).timeout(30 * 1000).get(); 

     Elements makaleAdi = doc.select("li.card-component__description"); 

      liste.add(makaleAdi.text()); 

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


    return null; 
} 


@Override 
protected void onPostExecute(Void aVoid) { 
    super.onPostExecute(aVoid); 

    lv.setAdapter(adapter); 
    progressDialog.dismiss(); 

} 
} 
} 
+0

をdebugerを使用し、 'GET'リクエストが正しいページを返すかどうかを確認します。そうでない場合、問題はリクエストにあります。はいの場合 - 問題は結果を解析する方法です。 – TDG

+0

デバッグに問題はないようです。最後の行はデバッグ中に ''ターゲットVMに接続しました。アドレス: 'localhost:8615'、トランスポート: 'socket' ''。 –

+0

これはデバッガがうまく動作することを意味します:)例えば 'doc'の値を検査できるようにブレークポイントを設定しましたか? – TDG

答えて

0

userAgent方法を置く:

Document doc = Jsoup.connect(URL).timeout(30 * 1000) 
       .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6") 
       .get(); 
+0

問題は解決しません。 –

関連する問題