Poast
来源:互联网 发布:软件部职责要求 编辑:程序博客网 时间:2024/05/22 00:11
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"/>
阅读全文
0 0
- Poast
- android Poast方式获取数据网络不稳定
- centos7测试mysql c api
- 产品智能推荐规则,能否再聪明一些
- 解析线程池中任务队列(BlockingQueue)的分类
- curl code ERROR 60错误解决办法
- OpenGL ES的函数解析和记录理解
- Poast
- 浏览历史
- 影响组学
- 验证码功能js实现
- LeetCode121. Best Time to Buy and Sell Stock解题
- 用numpy做图像处理
- SQL语句中find_in_set、like、in的区别及使用方法
- AsyncTask
- 云星数据---Scala实战系列(精品版)】:Scala入门教程010-Scala实战源码-object(类)