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的HTTP请求方式

大多数网络连接的Android应用程序都将使用HTTP发送和接收数据 对于Http协议的工作原理,一句话概括的话,就是客户端向服务器发出一条HTTP请求,服务器收到之后会返回一些数据给客户端,然后...

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

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

Android网络编程之Http请求服务器数据(GET方式)

进行Android应用开发,其中不得不使用到网络编程,最基本的就是向服务器发送Http请求,并接收从服务器返回的数据,该类数据一般为JSON或XML格式。         向服务器进行请求数据一般有G...

Android开发笔记-使用Volley开源库进行Http网络请求(POST方式)

之前使用了开源网络请求库Volley进行了Http GET请求。这次我们讨论使用Volley进行POST请求。POST请求比GET稍微复杂一点点。可以认为是建立在GET的基础上。POST使发送的url...
  • errvv
  • errvv
  • 2016-01-29 10:01
  • 139

Android中使用Volley开源库进行Http网络请求(GET方式)

在之前的Http网络请求中,我们一般使用输入流以及缓冲区的方式进行访问,然后从服务器获取返回的数据。代码行数近20行,而且网络操作是放在Thread线程中进行的,对于Java或者Android的线程还...

Android的异步加载AsyncTask方式Http请求的封装(改进版)

相对于上次的Handler + Thread而言,该次的封装,改进之处在于: 改变了使用的方式,不再需要另写一个父类供子类继承新增了网络请求超时的处理增加了加载时的处理极大简化了使用的繁琐度 一、...

Android网络编程之Http请求服务器数据(POST方式)

Android中的网络请求主要有GET和POST方式。POST方式比GET方式更为安全,因为需要发送的消息不是嵌入在url中的,同时能比GET发送更多的数据。       本文讨论使用POST方...
  • errvv
  • errvv
  • 2016-01-28 16:42
  • 528

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

方式一:HttpPost(import org.apache.http.client.methods.HttpPost )Java代码 代码如下:    private Button button1,...

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

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

Android中使用Volley开源库进行Http网络请求(GET方式)

在之前的Http网络请求中,我们一般使用输入流以及缓冲区的方式进行访问,然后从服务器获取返回的数据。代码行数近20行,而且网络操作是放在Thread线程中进行的,对于Java或者Android的线程还...
  • errvv
  • errvv
  • 2016-01-28 16:46
  • 394
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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