Http请求数据

作者: 难得糊涂与君勉 | 来源:发表于2016-12-09 16:11 被阅读221次

第一组:HttpURLConnection类
从服务器获取数据可以总结为这几步:

# GET请求方式的关键代码:
URL  url = new URL(netPath);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMedthod("GET")//没有写这个方法,就默认为get请求方式,
conn.connect();//发起连接,
if(conn.getResponseCode==200){//表示连接成功
         InputStream is = conn.getInputStream();//从服务器端返回的结果是以流的形式回来
}
 # POST请求关键代码
 conn.setRequestMethod("POST")
 conn.setDoOutput(true);//设置允许写出数据,默认不允许,因为默认就是GET请求方式
 conn.setDoInput(true);//设置当前链接可以从服务器获取数据,默认就是true,就是允许的
 Outputstream os = conn.getOutputstream();
 os.write(("use=abc&ups=123").getBytes());
 os.flush;
 conn.connect();//发起连接
 ```

第二组:OkHttp:
这是square公司推出的处理Http协议的网络请求的工具类
- 一般的get请求;
- 一般的post请求;
- 基于http下载文件;
- 加载图片;
- 支持请求回调,直接返回对象或者是对象集合
- 支持session的保持

GET请求方式的关键代码

OkHttpClient client = new OkHttpClient();//得到客户端
Request.Builder builder = new Request.Builder();//里面封装了Builder类作为请求类的静态内部类
builder.url(netPath);
builder.get();//指定为get请求方式
Request request =builder.build();//采用了构建者模式完成得到请求
//一般使用一句话来完成Request request = new Request.Builder().url(netPath).get().build();
Response response = client.newCall(request).execute();//客户端发起请求,并且得到响应的对象
if(response.isSuccessful()){
//表示联网成功了
//可以获得响应的信息,
byte[] data = response.body().bytes;
String str = response.body().String();
//可以发现,信息都是存在response.body()中。

}

Post请求方式的关键代码

OkHttpClient client = new OkHttpClient();
RequestBody body = new FormBody,Builder();//请求参数,是放在了RequestBody中
body.add("useName","tom")//是以键值对的形式来存贮数据
body.add("password","122")
.build();//也是采用的构建者模式
Request request = new Request.Builder().url(netPath).post(body).build();
//之后就与get方式类似了,不同的是处理看你需求


第三组HttpClient 
由apache推出的获取网络请求数据的框架。
一般使用DefaultHttpClient子类去实现

GET请求方式的关键代码

HttpClient client = new DefaultHttpClient();//也是通过先得到客户端
HttpGet httpGet = new HttpGet(netPath);//得到httpGet对象,直接将参数路径传递进入
HttpResponse response =client.execute(httpGet);//直接发起请求
if(response.getStatasLine().getStatusCode()==200){
//表示如果连接网络成功的话
HttpEntity entity = response.getEntity()//获取响应实体
InputStream is = entity.getContent();//获取里面的内容
//本身也提供了一中封装好的处理方式
String str = EntityUtils.toString(entity);
byte[] data = EntityUtils.toByteArray(entity);
}

POST请求方式的关键代码

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(netPath);//表明是post的请求方式
List<BasicNameValuePair> paramters = new ArrayList<>();//创建一个容器用于提交数据的保存
BasicNameValuePair p = new BasicNameValuePair("user","password");//得到一个对象
paramters.add(p);
HttpEntity entity = new UrlEncodedFormEntity(paramters);//将参数封装到请求实体中
post.setEntitiy(entity);//将请求实体放在Post里面。
//之后就是发起请求就可以了
HttjpResponse response = client.execute(post);


相关文章

  • 动脑学院架构篇-HTTP请求、响应报文格式

    【HTTP】HTTP请求、响应报文格式 HTTP请求报文格式: HTTP请求报文主要由请求行、请求头部、请求数据3...

  • HTTP简介

    HTTP请求 HTTP请求分为 GET 和 POST 两种 GET 请求数据 PIST 发送并请求数据 我们可以通...

  • Android 笔记 —— Http 网络探索

    Http 请求及相应 请求包结构 示例: 响应包结构 示例: Http 请求方式 GET请求指定url的数据,请求...

  • 网络(三):应用层HTTP

    目录一、字符编码和各个码表二、HTTP 1、HTTP的数据格式  1.1 HTTP请求的数据格式 = 请求行 + ...

  • ajax请求接口参数

    如何使用ajax请求数据: // 请求接口数据$.ajax({ url: 'http://localhost/...

  • HTTP

    HTTP请求报文:请求行(包括http协议版本,请求方法等),消息报头(连接情况,接收的数据类型,接收数据范围等)...

  • iOS之网络简解篇.

    网络 HTTP请求 GET请求 POST请求 数据解析 JSONNSJSONSerialization XMLSA...

  • http消息体

    HTTP请求数据: HTTP请求信息由3部分组成: ① 请求方法 URI 协议/版本② 请求头(Request H...

  • iOS Daily Tip - HTTP请求/响应报文结构

    HTTP请求报文 一个HTTP请求报文由四个部分组成:请求行、请求头部、空行、请求数据(请求正文)。 请求行请求行...

  • Http请求数据

    第一组:HttpURLConnection类从服务器获取数据可以总结为这几步: GET请求方式的关键代码 OkHt...

网友评论

    本文标题:Http请求数据

    本文链接:https://www.haomeiwen.com/subject/hewemttx.html