用HTTP操作和文件操作把网页下载到sd卡
2013-11-01 21:19
330 查看
这里先把代码贴到这里做一个存档,写到SD卡的是一个txt文件,改成HTML格式之后会出现百度主页,但是中文是乱码,这一点先暂时不去研究了。
代码:
import..
HTTP操作顺序是:HttpGet--HttpClient--HttpResponse--HttpEntity。
这里I/O流里用的是InputStream、BufferedReader和FileWriter。
注意要在Mainifest里添加两个权限(这次忘了添加写入SD卡的权限,下午在英语课上想到了。。)
代码:
package com.larry.gotcha; import java.io.BufferedReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;
import..
public class MainActivity extends Activity { private Button requestButton = null ; private HttpResponse httpResponse = null ; private HttpEntity httpEntity = null ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); requestButton =(Button)findViewById(R.id.requestButton); requestButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //生成一个请求对象 HttpGet httpGet = new HttpGet("http://www.baidu.com/"); //生成客户端对象 HttpClient httpClient = new DefaultHttpClient(); //使用客户端发送请求对象 InputStream inputStream = null ; try { //execute返回一个HttpResponse类型的参数,代表服务器返回的响应 httpResponse = httpClient.execute(httpGet); //HttpResponse代表返回的响应,那么HttpEntity就代表响应的内容Obtains the message entity of this response, if any. httpEntity = httpResponse.getEntity(); inputStream = httpEntity.getContent();//注意getContent()方法很常用 BufferedReader br = new BufferedReader(new InputStreamReader(inputStream)); String sd = Environment.getExternalStorageDirectory().getPath(); @SuppressWarnings("resource") FileWriter fw = new FileWriter( sd + "/gotcha.txt"); String line = "" ; String result = "" ; while((line = br.readLine()) != null) { result = line + result ; } System.out.println(result); fw.write(result , 0 , result.length()); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { inputStream.close(); } catch(Exception e) { e.printStackTrace(); } } } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
HTTP操作顺序是:HttpGet--HttpClient--HttpResponse--HttpEntity。
这里I/O流里用的是InputStream、BufferedReader和FileWriter。
注意要在Mainifest里添加两个权限(这次忘了添加写入SD卡的权限,下午在英语课上想到了。。)
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
相关文章推荐
- 给父母的10个网络社交的建议
- curl 查看HTTP 响应头信息
- ZOJ Flower (二分+网络流sap 算法)
- ZOJ Flower (二分+网络流sap 算法)
- allegro 修改引脚,焊盘的网络标号
- 黑马程序员_网络编程
- 如何做合格黑客并从事网络安全
- tcp客户/服务器程序例子步步改进之一------大体实现
- 初识QT 网络类 获取本机IP MAC 等信息
- muduo网络库学习之BlockinngQueue<T>类、ThreadPool 类、Singleton类封装中的知识点
- [置顶] 获取网络数据中的数组显示成ListView的简单流程
- Android Asynchronous Http Client-Android异步网络请求客户端接口
- xUtils 1.8.4 (Android工具库) 发布 - http模块优化...
- node.js与java性能测试(http,与redis访问)
- TCP/UDP 详解 (可靠传输、流量控制、连接管理等核心章节的详解)
- 获取网络数据中的数组显示成ListView的简单流程
- HTTP请求、响应报文格式
- HTTP请求、响应报文格式
- HTTP协议中PUT/GET/POST/HEAD等介绍
- 黑马程序员---tcp与udp总结