Android读取网络资源

来源:互联网 发布:彩虹六号围攻网络类型 编辑:程序博客网 时间:2024/05/02 03:04
package com.example.atest27;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;import java.util.List;import java.util.Map;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.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity {HttpClient httpClient;Button btn2;EditText response;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);httpClient = new DefaultHttpClient();btn2 = (Button)findViewById(R.id.button2);response= (EditText)findViewById(R.id.editText1);final TextView tx1 = (TextView)findViewById(R.id.textView1);Button btn1 = (Button)findViewById(R.id.button1);btn1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubString response = GetPostUtil.sendGet("http://10.33.91.13/test3.php", null);tx1.setText(response);}});btn2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubHttpGet get = new HttpGet("http://10.33.91.13/test3.php?abc=1");try {HttpResponse httpResponse = httpClient.execute(get);HttpEntity entity = httpResponse.getEntity();if(entity != null){BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));String line = null;response.setText("");while((line = br.readLine())!= null){response.append(line+"\n");}}} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}});}@Overridepublic 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;}}class GetPostUtil{/** * 向指定URL发送GET方法的请求 *  * @param url *            发送请求的URL * @param params *            请求参数,请求参数应该是name1=value1&name2=value2的形式。 * @return URL所代表远程资源的响应 */public static String sendGet(String url, String params){String result = "";BufferedReader in = null;try{String urlName = url + "?" + params;URL realUrl = new URL(urlName);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");// 建立实际的连接conn.connect();// 获取所有响应头字段Map<String, List<String>> map = conn.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()){System.out.println(key + "--->" + map.get(key));}// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null){result += "\n" + line;}}catch (Exception e){System.out.println("发送GET请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输入流finally{try{if (in != null){in.close();}}catch (IOException ex){ex.printStackTrace();}}return result;}/** * 向指定URL发送POST方法的请求 *  * @param url *            发送请求的URL * @param params *            请求参数,请求参数应该是name1=value1&name2=value2的形式。 * @return URL所代表远程资源的响应 */public static String sendPost(String url, String params){PrintWriter out = null;BufferedReader in = null;String result = "";try{URL realUrl = new URL(url);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流out = new PrintWriter(conn.getOutputStream());// 发送请求参数out.print(params);// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null){result += "\n" + line;}}catch (Exception e){System.out.println("发送POST请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输出流、输入流finally{try{if (out != null){out.close();}if (in != null){in.close();}}catch (IOException ex){ex.printStackTrace();}}return result;}}

0 0
原创粉丝点击