2011-06-28 8 views
12

私はDOMパーザを使ってページのソースコードを取得するためにvb.netの文字列にhtmlソースコードを取得するプロジェクトに取り組んでいます。androidのURLからHTMLソースコードを取得するには?

1)私はアンドロイドでURLを呼び出してウェブページのソースコードを取得する方法は何でしょうか? 2)私は1つのレイアウトでソースコード用に2つのレイアウトを持ち、ウェブページ自体には2つのレイアウトを持っています。ソースコードレイアウトでタイトルタグの値を変更している場合は、実際のWebページで自動的に更新される必要がありますか?

アンドロイドでこれを行うにはどうすればよいでしょうか?

どのようなヘルプも高く評価されます。あなたがこれを使用することができますURLからソースコードを取得するために

答えて

27

HttpClient httpclient = new DefaultHttpClient(); // Create HTTP Client 
HttpGet httpget = new HttpGet("http://yoururl.com"); // Set the action you want to do 
HttpResponse response = httpclient.execute(httpget); // Executeit 
HttpEntity entity = response.getEntity(); 
InputStream is = entity.getContent(); // Create an InputStream with the response 
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8); 
StringBuilder sb = new StringBuilder(); 
String line = null; 
while ((line = reader.readLine()) != null) // Read line by line 
    sb.append(line + "\n"); 

String resString = sb.toString(); // Result is here 

is.close(); // Close the stream 

また、そのようなタイムアウトや他のものを管理するためのHttpClientにいくつかのparamsを追加することができます。 例:

HttpParams httpParameters = new BasicHttpParams(); 
HttpConnectionParams.setConnectionTimeout(httpParameters,3000); // 3s max for connection 
HttpConnectionParams.setSoTimeout(httpParameters, 4000); // 4s max to get data 
HttpClient httpclient = new DefaultHttpClient(httpParameters); 
+0

あなたの質問の第二の部分についてはウルの提案、Lyrkan – mH16

+0

ためのおかげで、私はそれを処理するために、問題にはならないと思います。つまり、ソースではなくWebページを表示するレイアウトでは、Webviewを使用すると仮定します。そのため、更新されたソースコードを与えるだけでコンテンツを更新する必要があります。 – Lyrkan

+0

動作していません。 Webページが利用できない問題が発生しました。 –

2

イオンライブラリを使用すると、任意のURLからHtmlコードを取得できます。

プロジェクトの構造に移動し、「依存関係」をクリックし、「+」をクリックすると、com.koushikdutta.ionが表示されます:ion:2.1.8クリックして「OK」をクリックします。これで、イオンライブラリを使用してURLからHTMLコードを取得できます。

public class HtmlCode extends Activity { 
    TextView tv; 

    public void onCreate(Bundle s) 
    { 
     super.onCreate(s); 
     setContentView(R.layout.httpexample); 

     tv = (TextView)findViewById(R.id.tvHttp); 
     Ion.with(getApplicationContext()).load("http://www.your_URL.com").asString().setCallback(new FutureCallback<String>() { 
      @Override 
      public void onCompleted(Exception e, String result) { 

       tv.setText(result); 
      } 
     }); 
    } 
} 
関連する問題