在线咨询
微信咨询
服务热线
服务热线:15639912513
TOP
当前位置:
首页 > 新闻中心> 安卓课堂>使用httpurlconnection提交参数_post案…

使用httpurlconnection提交参数_post案例

发布时间:2020-02-04 浏览:4646次

上次把使用httpurlconnection提交参数_get案例给演示了,这次主要演示使用httpurlconnection提交参数_post案例。下面是布局代码和java代码。

首先是布局代码

adv_1.png

adv_1.png

下面是java代码

package cn.xhhkj.xhhkjtest;


import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;


import androidx.appcompat.app.AppCompatActivity;


import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLEncoder;


public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private String path = "http://192.168.0.101/index/index/login";

    private EditText et_username;

    private EditText et_pwd;

    private Button btn_login;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        et_username = (EditText) findViewById(R.id.et_username);

        et_username.setText("兴弘海科技");

        et_pwd = (EditText) findViewById(R.id.et_password);

        btn_login = (Button) findViewById(R.id.btn_login);

        Button btn_post = (Button) findViewById(R.id.btn_login_post);

        btn_login.setOnClickListener(this);

        btn_post.setOnClickListener(this);

    }


    @Override

    public void onClick(View v) {

        if(v.getId()==R.id.btn_login){

            new Thread(){

                public void run() {

                    String username = et_username.getText().toString();

                    String pwd = et_pwd.getText().toString();

                    try {

                        String tempUrl = path+"?username="+ URLEncoder.encode(username, "utf-8")+"&password="+URLEncoder.encode(pwd, "utf-8");

                        URL url = new URL(tempUrl);

                        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                        connection.setRequestMethod("GET");

                        connection.setConnectTimeout(10000);

                        int code = connection.getResponseCode();

                        if(code==200){

                            InputStream inputStream = connection.getInputStream();

                            String result = Utils.getStringFromStream(inputStream);

                            showToast(result);

                        }

                    } catch (Exception e) {

                        // TODO Auto-generated catch block

                        e.printStackTrace();

                    }

                };

            }.start();

        }else if(v.getId()==R.id.btn_login_post){

            new Thread(){

                public void run(){

                    String username = et_username.getText().toString();

                    String pwd = et_pwd.getText().toString();

                    try{

                        String params = "username="+URLEncoder.encode(username,"utf-8")+"&password="+URLEncoder.encode(pwd,"utf-8");

                        URL url = new URL(path);

                        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                        connection.setRequestMethod("POST");

                        connection.setConnectTimeout(10000);

                        connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

                        connection.setRequestProperty("Content-Length", String.valueOf(params.length()));

                        connection.setDoOutput(true);

                        connection.getOutputStream().write(params.getBytes());

                        int code = connection.getResponseCode();

                        if(code==200){

                            InputStream inputStream = connection.getInputStream();

                            String rusult = Utils.getStringFromStream(inputStream);

                            showToast(rusult);

                        }

                    }catch (Exception e){

                        e.printStackTrace();

                    }

                }

            }.start();

        }


    }


    private void showToast(final String str){

        runOnUiThread(new Runnable() {

            @Override

            public void run() {

                Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();

            }

        });

    }


}

在这里总结下,其中get提交和post提交可以使用if判断来进行区别,根据v.getId()的获取来得到。post提交比get提交要多几个步骤,其中connection.setRequestMethod("POST");和connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");和connection.setRequestProperty("Content-Length", String.valueOf(params.length()));个人感觉还是get方式比较简单,在app中,post并不比get提交保密,因为app中根本看不出url携带的参数是多少,因为移动端并没有url地址栏。






 


TAG
4646
该内容对我有帮助