android Http请求方式

原创 2015年07月08日 11:54:48

1.使用HttpURLConnection访问网络资源

<span style="font-size:14px;">private String httpUrlForResult(URL url) {
		String resultStr = "";
		HttpURLConnection httpConnection = null;
		InputStream in = null;
		try {
			httpConnection = (HttpURLConnection) url.openConnection();
			httpConnection.setConnectTimeout(1000);// 设置超时时间
			httpConnection.setReadTimeout(10000);
			// 设置请求方式,表示设置为get
			// httpConnection.setRequestMethod("GET");

			// 设置为post方式
			httpConnection.setDoInput(true);
			httpConnection.setDoOutput(true);
			httpConnection.setUseCaches(false);// 忽略缓存
			httpConnection.setRequestMethod("POST");

			httpConnection.setRequestProperty("Content-Type",
					"application/x-www-form-urlencoded"); // 输出键值对
			httpConnection.setRequestProperty("Connection", "Keep-Alive"); // 维持长连接
			httpConnection.setRequestProperty("Charset", "utf-8");
			httpConnection
					.setRequestProperty(
							"User-Agent",
							"Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13");
			httpConnection.setRequestProperty("Accept", "*/*");
			httpConnection.setRequestProperty("Accept-Encoding", "identity");

			OutputStream out = httpConnection.getOutputStream();
			out.write(1);// post请求的数据,即写出的数据,这儿可根据自己的需求改
			out.flush();
			out.close();
			
			in = httpConnection.getInputStream();
			BufferedReader reader = new BufferedReader(
					new InputStreamReader(in));
			int responseContent = httpConnection.getContentLength();
			StringBuilder sb = new StringBuilder();
			if (responseContent != 0) {
				int responseCode = httpConnection.getResponseCode();
				if (responseCode == HttpURLConnection.HTTP_OK) {

					String line = null;
					while ((line = reader.readLine()) != null) {
						sb.append(line);
					}
				}
			}
			resultStr = sb.toString();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (httpConnection != null) {
				httpConnection.disconnect();
			}
			if (in != null) {
				try {
					in.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		return resultStr;
	}</span>
2.HttpClient访问网络资源

(1)get请求

private String connServerForResult(String url) {
		String strResult = "";
		BufferedReader reader = null;
		HttpGet httprequest = new HttpGet(url);
		HttpClient httpclient = new DefaultHttpClient();
		try {
			HttpResponse httpresponse = httpclient.execute(httprequest);
			reader = new BufferedReader(new InputStreamReader(httpresponse
					.getEntity().getContent()));

			StringBuilder sb = new StringBuilder();
			String line = null;
			while ((line = reader.readLine()) != null) {
				sb.append(line);
			}
			strResult = sb.toString();
			return strResult;
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return strResult;
	}

(2)post请求(只做了部分判断)

public String connServerForResultP(String url) {
        String result = null;
        BufferedReader reader = null;
        try {
            HttpClient client = new DefaultHttpClient();
            HttpPost request = new HttpPost(url);
            List<NameValuePair> postParameters = new ArrayList<NameValuePair>();
            postParameters.add(new BasicNameValuePair("name", "zhangyabin"));
            postParameters.add(new BasicNameValuePair("password", "99999999"));
            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(
                    postParameters);
            request.setEntity(formEntity);
 
            HttpResponse response = client.execute(request);
            reader = new BufferedReader(new InputStreamReader(response
                    .getEntity().getContent()));
 
            StringBuffer strBuffer = new StringBuffer("");
            String line = null;
            while ((line = reader.readLine()) != null) {
                strBuffer.append(line);
            }
            result = strBuffer.toString();
 
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                    reader = null;
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
 
        return result;
    }

get和post请求的区别(资料查询所得)

1.get是从服务器上获取数据,post是向服务器传送数据。

2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,

  将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。如果不指定Method,则默认     为GET请求,Form中提交的数据将会附加在url之后,以?分开与url分开。

3.HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度进行限制,开发中存在的限制主要 是:GET:特定浏览器和服务器对URL长度有限

   制,其限制取决于操作系 统的支持。POST:由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交数据大小进行限制,

   Apache、IIS6 都有各自的配置。



android笔记之安全开发之使用HTTPS

1、HTTPS简介阿里聚安全的应用漏洞扫描器中有证书弱校验、主机名弱校验、webview未校验证书的检测项,这些检测项是针对APP采用HTTPS通信时容易出现风险的地方而设。接下来介绍一下安全使用HT...

最全的系统控件界面用法汇总

今天我用自己写的一个Demo 和大家详细介绍一个Android开发中遇到的一些常用系统控件的使用技巧。         1. 文本框TextView        TextView...

Android客户端采用Http 协议Post方式请求与服务端进行数据交互

本示例以Servlet为例,演示Android与Servlet的通信。 众所周知,Android与服务器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和post...

Android 以Http协议 使用get和post方式请求站点

此文就是作为笔记使用,以防忘记,下面是全部代码:package ytbk.soft.activity; import java.io.BufferedReader; import java.io.I...

Android下载多个图片(传统Http请求方式)

今天要做一个图片下载方式,图片不算多,图片最多有5个左右。我想了好几个办法, 1、文件下载:可行,但是对于单一的图片下载来说,略复杂了些。 2、第三方图片下载:可行,但是需要去了解和学习第三方,所...

Android开发技术网络篇之── http协议post请求方式

方式一:HttpPost(import org.apache.http.client.methods.HttpPost )Java代码 代码如下:    private Button button1,...
  • pjk1129
  • pjk1129
  • 2011年07月04日 15:56
  • 5237

Android HTTP协议请求网络(三)之HttpURLConnection方式

一、介绍 在Android API Level 9(Android 2.2)之前只能使用DefaultHttpClient类发送http请求。DefaultHttpClient是Apache用于发...

Android HTTP请求方式:HttpURLConnection

本节学习的是Android为我们提供的Http请求方式之一:HttpURLConnection, 除了这种,还有一种还有一种HttpClient,后者我们会下一节讲!不过前者一旦请求复杂起来,使用起来...

开源库android-async-http添加https请求方式

这几天由于项目要求将http转换成https请求,要求不做证书验证。而我使用的是loopj的开源库android-async-http来完成服务器请求,但是此库并未有相关https的示例,故自己动手丰...

Android HTTP协议请求网络(二)之HttpClient方式

一、基础介绍: 1、HttpClient是Apache开源组织提供的HTTP网络访问接口(一个开源的项目),从名字上就可以看出,它是一个简单的HTTP客户端(并不是浏览器),可以发送HTTP请求,接...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android Http请求方式
举报原因:
原因补充:

(最多只允许输入30个字)