zoukankan      html  css  js  c++  java
  • http操作

    image

    为什么http协议叫做超文本传输协议, 因为应用http协议不仅仅能传输文本, 还能传输图片, 音频, 视频等等.

    http协议是应用层通信协议.

    image

    image

    image

    什么叫做报文, 报文就是数据

    请求报文 = 请求数据, it业就爱瞎拽词

    image

    讲如何利用这套api, 发送一个http请求, 以及接受服务器的响应.

    package org.apache.http

    如何发送带参数的http请求:

    1. 用Get方式发送http请求.

    private String baseUrl = "http://192.168.1.100:8081/serverside/name";
    public void onClick(View v) {
                    String url = baseUrl + "?" + "name=" + "zhangsan" + "&age=" + "20";  //参数是键值对, 键值对用&进行连接.
                                                                                                       //  url地址是: 
    http://192.168.1.100:8081/serverside/name?name=zhangsan&age=20
                    private HttpResponse httpResponse = null;

                    //生成一个请求对象
                    HttpGet httpGet = new HttpGet(url);
                    //生成一个Http客户端对象
                    HttpClient httpClient = new DefaultHttpClient();
                    InputStream inputStream = null;
                    try {

                         //使用Http客户端发送请求对象
                        httpResponse = httpClient.execute(httpGet);
                        httpEntity = httpResponse.getEntity();          //从http响应中得到http entity.
                        inputStream = httpEntity.getContent();         //从http entity中得到内容.
                        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
                        String result = "";
                        String line = "";
                        while((line = reader.readLine()) != null){
                            result = result + line;
                        }
                        System.out.println(result);                       //把http的响应内容打印出来.
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    finally{
                        try{
                            inputStream.close();
                        }
                        catch(Exception e){
                            e.printStackTrace();
                        }
                    }
    }

    2. 用Post方式发送http请求.

    public void onClick(View v) {
                    NameValuePair nameValuePair1 = new BasicNameValuePair("name","zhangsan");  // NameValuePair对象代表一个键值对
                    NameValuePair nameValuePair2 = new BasicNameValuePair("age","20");
                    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();          //把要发送的键值对参数放到一个list中去
                    nameValuePairs.add(nameValuePair1);
                    nameValuePairs.add(nameValuePair2);
                    try {
                                HttpEntity requestHttpEntity = new UrlEncodeFormEntiry(nameValuePairs);  //把参数数据封装在http entity中.
                                HttpPost httpPost = new HttpPost(baseUrl);                                          //生成一个httpPost对象.
                                httpPost.setEntity(requestHttpEntity);                                                 //为http post请求设置http entity.
                                HttpClient httpClient = new DefaultHttpClient();
                                InputStream inputStream = null;
                                httpResponse = httpClient.execute(httpPost);                                       //下面的代码和使用http get方式相同.
                                httpEntity = httpResponse.getEntity();
                                inputStream = httpEntity.getContent();
                                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
                                String result = "";
                                String line = "";
                                while((line = reader.readLine()) != null){
                                    result = result + line;
                                }
                                System.out.println(result);
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    finally{
                        try{
                            inputStream.close();
                        }
                        catch(Exception e){
                            e.printStackTrace();
                        }
                    }
    }

    Browser apk中哪里用到了http操作?

    class DownloadTouchIcon用到了 http get请求.

    FBReader的ZLNetworkManager.java中用到了 http post请求.

  • 相关阅读:
    Mysql之主从复制
    Java之对象序列化和反序列化
    java URI 与URL问题
    java之路径
    Java学习之位运算和逻辑运算符
    设计模式之六大原则
    观察者模式与监听器
    动态代理
    git 本地分支与远程分支
    创建分支策略
  • 原文地址:https://www.cnblogs.com/ahking17/p/2280675.html
Copyright © 2011-2022 走看看