zoukankan      html  css  js  c++  java
  • 使用HTTP协议访问网路

    使用HTTP协议访问网路

    一、使用HttpURLConnection

    //new一个URL对象
    URL url = new URL("http://www.qq.com");//千万不要用www.baidu.com,坑爹东西
    //调用openConnection()方法,得到HttpURLConnection对象
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    //对HttpURLConnection对象设置模式,GET 表示希望从服务器那里获取数据,而 POST 则表示希望提交数据给服务器。
    connection.setRequestMethod("GET");
    //设置连接超时、读取超时的毫秒数
    connection.setConnectTimeout(8000);
    connection.setReadTimeout(8000);
    //调用 getInputStream()方法获取到服务器返回的输入流
    InputStream in = connection.getInputStream();
    //对输入流进行读取操作
    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    StringBuilder response = new StringBuilder();
    String line;
    //当该行不为空,返回一行
    while ((line = reader.readLine()) != null) {
        Log.d(TAG, "line != null" + line);
        response.append(line);
    }
    //通过handler把message发送出去
    Message message = new Message();
    message.what = SHOW_RESPONSE;
    if (response.toString() == null) {
        message.obj = response.toString() + "啥也没有";
    } else {
        message.obj = response.toString();
    }
    mHandler.sendMessage(message);
    

    主线程中创建handler,并重写handlerMessage()方法,等待来自sendMessage的信息

    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case SHOW_RESPONSE:
                //判断信息并更新UI操作
                    String response = (String) msg.obj;
                    NetworkTextView.setText(response);
                    break;
            }
        }
    };
    

    向服务器推送数据

    connection.setRequestMethod("POST");
    DataOutputStream out = new DataOutputStream(connection.getOutputStream());
    out.writeBytes("username=admin&password=123456");//数据与数据之间用"&"隔开
  • 相关阅读:
    图与链表的深拷贝
    Codeforces Round #686(Div.3) [C- Sequence
    前缀和
    递归改非递归
    STL源码剖析笔记
    第六章 进程
    C++ 设计模式--模板模式、策略模式、观察者模式
    宏定义方式 进行枚举类型和枚举类型的相互转换
    Linux常见信号介绍
    git rebase 操作
  • 原文地址:https://www.cnblogs.com/cenzhongman/p/6403349.html
Copyright © 2011-2022 走看看