Poast

package net.bwie.network.activity;

import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import com.google.gson.Gson;

import net.bwie.network.R;
import net.bwie.network.bean.Person;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * 当前案例:
 * 上传姓名和年龄,返回JSON字符串
 */
public class PostActivity extends AppCompatActivity implements View.OnClickListener {

    protected Button mPostBtn;

    public static void startActivity(Context context) {
        context.startActivity(new Intent(context, PostActivity.class));
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.setContentView(R.layout.activity_post);
        initView();
    }

    @Override
    public void onClick(View view) {
        if (view.getId() == R.id.post_btn) {
            doPost();
        }
    }

    // 使用异步任务执行POST请求
    private void doPost() {
        String url = "http://172.21.66.7:8080/postdemo";

        PostTask task = new PostTask();
        task.execute(url);
    }

    private void initView() {
        mPostBtn = (Button) findViewById(R.id.post_btn);
        mPostBtn.setOnClickListener(PostActivity.this);
    }

    private class PostTask extends AsyncTask<String, Void, Person> {

        @Override
        protected Person doInBackground(String... params) {
            String requestUrl = params[0];
//
            try {
                URL url = new URL(requestUrl);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                // 设置POST请求
                connection.setRequestMethod("POST");
                // 设置可向服务器输出
                connection.setDoOutput(true);
                connection.setDoInput(true);
                // 打开连接
                connection.connect();

                // 打开连接后,向服务端写要提交的参数
                // 参数格式:“name=asdasdas&age=123123”
                StringBuilder stringBuilder = new StringBuilder();
                stringBuilder.append("name=")
                        .append("wuyanzu")// 拼接自己传入的姓名
                        .append("&")
                        .append("age=")
                        .append("123");// 拼接自己传入的年龄
                // 获取向服务器写数据的输出流
                connection.getOutputStream()
                        .write(stringBuilder.toString().getBytes());

                // 提交数据后,获取来自服务器的json数据
                if (connection.getResponseCode() == 200) {
                    BufferedReader br = null;
                    br = new BufferedReader(new InputStreamReader(connection.getInputStream()));

                    String json = "";
                    String line = "";

                    while ((line = br.readLine()) != null) {
                        json += line.trim();
                    }

                    // 解析
                    Gson gson = new Gson();
                    Person person = gson.fromJson(json, Person.class);
                    return person;

                }

            } catch (Exception e) {
                e.printStackTrace();
                Log.d("1507", e.getMessage());
            }


            return null;
        }

        @Override
        protected void onPostExecute(Person person) {
            super.onPostExecute(person);


            Log.d("1507", "name:" + person.getName() + ", age: " + person.getAge());
        }
    }

}
package net.bwie.network.bean;

public class Person {

    private String name = "";
    private String age = "";

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
}
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="net.bwie.network.activity.PostActivity">

    <Button
        android:id="@+id/post_btn"
        android:text="post请求"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</android.support.constraint.ConstraintLayout>

<uses-permission android:name="android.permission.INTERNET"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值