zoukankan      html  css  js  c++  java
  • andorid 远程存储中JDK和Volley的GET和POST方法

    在操作Volley的时候先添加volley.jar(包)

    <uses-permission android:name="android.permission.INTERNET"/>(权限)

    wep.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.hanqi.application3.WebActivity"
        android:orientation="vertical">
    
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/et_5"
            android:hint="url地址"
            />
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="JDK的get方式"
                android:onClick="bt55_onclick"/>
            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="JDK的pose方式"
                android:onClick="bt66_onclick"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Android的get方式"
                android:onClick="bt77_onclick"/>
            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Android的pose方式"
                android:onClick="bt88_onclick"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Volley的get方式"
                android:onClick="bt99_onclick"/>
            <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Volley的pose方式"
                android:onClick="bt100_onclick"/>
        </LinearLayout>
        <EditText
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:id="@+id/et_6"/>
    </LinearLayout>

    WepActivity.java

    package com.hanqi.application3;
    
    import android.app.ProgressDialog;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.Toast;
    
    import com.android.volley.AuthFailureError;
    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.StringRequest;
    import com.android.volley.toolbox.Volley;
    
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.HashMap;
    import java.util.Map;
    
    public class WebActivity extends AppCompatActivity {
    
        EditText et5;
        EditText et6;
        RequestQueue requestQueue;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_web);
    
            et5 = (EditText)findViewById(R.id.et_5);
            et5.setText("http://192.168.0.101:8080/TestWeb/index.jsp");
            et6 = (EditText)findViewById(R.id.et_6);
            //获取Volley的请求队列
            requestQueue = Volley.newRequestQueue(this);
    
        }
        //1.在子线程访问网络
        //2.提供进度对话框
        //3.设置权限
        public void bt66_onclick(View v)
        {
            //1.显示ProgressDialog进度对话框
            final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");
            //2.访问网络,启动分线程
             new Thread() {
                 //3. 在分线程, 发送请求, 得到响应数据
                 @Override
                 public void run() {
    
                     try {
                        //1-URL
                         URL url = new URL(et5.getText().toString());
                        //2-URL获取链接
                         HttpURLConnection huc= (HttpURLConnection)url.openConnection();
                         //请求方式
                         huc.setRequestMethod("POST");
                         //设置超时
                         huc.setConnectTimeout(5000);
                         huc.setReadTimeout(5000);
                         //链接并发送请求
                         huc.connect();
                         //用输出流设置请求体
                         OutputStream os = huc.getOutputStream();
                         String str = "name=Rose";
                         os.write(str.getBytes("UTF-8"));
    
    
                         //接收:
                         //判断返回状态码 200
                         int code = huc.getResponseCode();
    
                         if(code == 200)
                         {
                             //接收数据
    
                             //输入流:
                             InputStream is = huc.getInputStream();
                             //读取流
                             //1-byte数据
                             byte[] b= new byte[1024];
                             //2-读到数组的长度
                             int i = 0;
                             //3-数据
                             final StringBuffer sd1 = new StringBuffer();
                             while ((i=is.read(b))>0)
                             {
                                 sd1.append(new String(b,0,i));
                             }
                             is.close();
                             huc.disconnect();
                             //释放资源
                             //通过主线程信息和关闭对话框
                             runOnUiThread(new Runnable() {
                                 @Override
                                 public void run() {
                                     et6.setText(sd1);
    
                                     dialog.dismiss();
                                 }
                             });
    
    
                         }
                         else {
                             Toast.makeText(WebActivity.this, "连接错误,返回的状态码="+code, Toast.LENGTH_SHORT).show();
                         }
                         os.close();
    
                     } catch (Exception e) {
                         e.printStackTrace();
    
                         dialog.dismiss();
    
                     }
                 }
             }.start();
        }
        public void bt55_onclick(View v)
        {
            //1.显示ProgressDialog进度对话框
            final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");
            //2.访问网络,启动分线程
            new Thread() {
                //3. 在分线程, 发送请求, 得到响应数据
                @Override
                public void run() {
    
                    try {
                        //1-URL
                        URL url = new URL(et5.getText().toString() + "?name=Tom1&age=11");
                        //2-URL获取链接
                        HttpURLConnection huc= (HttpURLConnection)url.openConnection();
                        //请求方式
                        huc.setRequestMethod("GET");
                        //设置超时
                        huc.setConnectTimeout(3000);
                        huc.setReadTimeout(3000);
                        //链接并发送请求
                        huc.connect();
                        //接收:
                        //判断返回状态码 200
                        int code = huc.getResponseCode();
    
                        if(code == 200)
                        {
                            //接收数据
    
                            //输入流:
                            InputStream is = huc.getInputStream();
                            //读取流
                            //1-byte数据
                            byte[] b= new byte[1024];
                            //2-读到数组的长度
                            int i = 0;
                            //3-数据
                            final StringBuffer sd1 = new StringBuffer();
                            while ((i=is.read(b))>0)
                            {
                                sd1.append(new String(b,0,i));
                            }
                            is.close();
                            huc.disconnect();
                            //释放资源
                            //通过主线程信息和关闭对话框
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    et6.setText(sd1);
    
                                    dialog.dismiss();
                                }
                            });
    
    
                        }
                        else {
                            Toast.makeText(WebActivity.this, "连接错误,返回的状态码="+code, Toast.LENGTH_SHORT).show();
                        }
                        //接收数据
    
    
                    } catch (Exception e) {
                        e.printStackTrace();
    
                        dialog.dismiss();
    
                    }
                }
            }.start();
        }
        public void bt77_onclick(View v)
        {
            final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");
    
    
        }
        public void bt99_onclick(View v)
        {
            final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");
            //构造Volley的请求对象
            StringRequest sr = new StringRequest(et5.getText().toString() + "?name=jack", new Response.Listener<String>() {
                @Override
                public void onResponse(String s) {
                    et6.setText(s);
                    dialog.dismiss();
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError volleyError) {
                    Toast.makeText(WebActivity.this, "访问出现异常", Toast.LENGTH_SHORT).show();
                    dialog.dismiss();
                }
            });
            //把请求对象放入队列
            requestQueue.add(sr);
        }
        public void bt100_onclick(View v)
        {
            final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");
            //构造Volley的请求对象
            StringRequest sr = new StringRequest(Request.Method.POST,et5.getText().toString(), new Response.Listener<String>() {
                @Override
                public void onResponse(String s) {
                    et6.setText(s);
                    dialog.dismiss();
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError volleyError) {
                    Toast.makeText(WebActivity.this, "访问出现异常", Toast.LENGTH_SHORT).show();
                    dialog.dismiss();
                }
            }){
                //重写设置参数的方法
                @Override
                protected Map<String, String> getParams() throws AuthFailureError {
                    Map<String,String> m = new HashMap<String,String>();
                    m.put("name","Volley");
                    return m;
                }
            };
            //把请求对象放入队列
            requestQueue.add(sr);
        }
    }
  • 相关阅读:
    ECNU 3288 成绩计算
    ECNU 3241 字母替换
    ECNU 3243 搜索联系人
    ECNU 2977 成绩排序
    ECNU 2974 统计单词个数
    ECNU 3092 GDP
    【Codeforces Round #693 (Div. 3) D】Even-Odd Game
    【Codeforces Round #693 (Div. 3) C】Long Jumps
    【Codeforces Round #693 (Div. 3) B】Fair Division
    【Codeforces Round #693 (Div. 3) A】Cards for Friends
  • 原文地址:https://www.cnblogs.com/cuikang/p/5419108.html
Copyright © 2011-2022 走看看