当前位置: 首页 > news >正文

post方式请求数据

post方式请求数据

 

分析:

1、将请求方式改成post

  conn.setRequestMethod("POST");  

2、设置连接可以输出

  conn.setDoOutput(true);

3、告诉服务器客户端提交的数据类型(表单数据)

  conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=utf-8");

  application/x-www-form-urlencoded代表表单数据

  如果是别的数据,这个部分是不同的,比如文件或者音频视频的二进制数据

4、创建输出流,给服务器写数据

  OutputStream output=conn.getOutputStream();

  output.write("username=老师".getBytes("UTF-8"));

  output.close();

  故服务器会受到老师这两个字

 

 1 package com.example.htmldaimachakanqi;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStreamReader;
 5 import java.io.OutputStream;
 6 import java.io.UnsupportedEncodingException;
 7 import java.net.HttpURLConnection;
 8 import java.net.MalformedURLException;
 9 import java.net.URL;
10 
11 import android.app.Activity;
12 import android.os.AsyncTask;
13 import android.os.Bundle;
14 import android.util.Log;
15 import android.view.View;
16 import android.widget.EditText;
17 
18 public class MainActivity extends Activity {
19     private EditText et_content;
20 
21     @Override
22     protected void onCreate(Bundle savedInstanceState) {
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.activity_main);
25         et_content = (EditText) findViewById(R.id.et_content);
26     }
27 
28     public void onClick(View view) throws UnsupportedEncodingException {
29         new AsyncTask<String, Void, String>() {
30             @Override
31             protected String doInBackground(String... params) {
32                 StringBuffer buffer=new StringBuffer();
33                 try {
34                     Log.d("bh", params[0]);
35                     // 封装了URL对象
36                     URL url = new URL(params[0]);
37                     // 获取http连接对象
38                     HttpURLConnection conn = (HttpURLConnection) url
39                             .openConnection();
40                     // 设置请求的方式  
41                     conn.setRequestMethod("POST");  
42                     // 设置请求的超时时间  
43                     conn.setReadTimeout(5000);  
44                     conn.setConnectTimeout(5000);
45                     //设置连接是否可以输出
46                     conn.setDoOutput(true);
47                    //设置连接是否可以输入
48                     conn.setDoInput(true);
49                     //告诉服务器客户端提交的数据类型(表单数据)
50                     conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
51                     OutputStream output=conn.getOutputStream();
52                     output.write("username=老师".getBytes("UTF-8"));
53                     output.close();
54                     // 获取状态码
55                     int code = conn.getResponseCode();
56                     Log.d("bh",code+"");
57                     if (code == 200) {// 请求成功
58                         Log.d("bh",conn.getHeaderFields().toString());
59                         // 获取响应消息的实体内容
60                         InputStreamReader reader = new InputStreamReader(
61                                 conn.getInputStream());
62                         char[] charArr = new char[1024 * 8];
63                         int len = 0;
64                         while ((len = reader.read(charArr)) != -1) {
65                             // 字符数组转字符串
66                             String str = new String(charArr, 0, len);
67                             // 在结尾追加字符串
68                             buffer.append(str);
69                         }
70                     }
71                 } catch (MalformedURLException e) {
72                     e.printStackTrace();
73                 } catch (IOException e) {
74                     e.printStackTrace();
75                 }
76                 return buffer.toString();
77             }
78 
79             protected void onPostExecute(String result) {
80                 // 设置字符串到编辑框
81                 et_content.setText(result);
82             };
83         }.execute("http://192.168.1.100:8080/WEB/TestServlet");
84     }
85 }

 

转载于:https://www.cnblogs.com/Renyi-Fan/p/7489187.html

相关文章:

  • 机器学习入门之认知
  • webpack项目中使用grunt监听文件变动自动打包编译
  • jmeter tcp取样器使用方法
  • (六)软件测试分工
  • Java面试题全集
  • 后缀数组专题
  • MySQL查询相关(初级)(全文重点)
  • 堆的实现(图片演示+文字讲解)
  • Ubuntu ko模块的编译
  • 通过git安装npm私有模块
  • python 安装 setuptools Compression requires the (missing) zlib module 的解决方案
  • jquery easyui-datagrid/treegrid 清空数据参考
  • 【微信公众号发红包转账】微信公众号上手机网页接收请求,通过公众号给用户发红包 开发流程...
  • Linux驱动开发之注册
  • java:Properties属性文件概念
  • 收藏网友的 源程序下载网
  • (三)从jvm层面了解线程的启动和停止
  • __proto__ 和 prototype的关系
  • ES学习笔记(12)--Symbol
  • go语言学习初探(一)
  • If…else
  • nginx 配置多 域名 + 多 https
  • npx命令介绍
  • 悄悄地说一个bug
  • 协程
  • 学习HTTP相关知识笔记
  • 一、python与pycharm的安装
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (4)(4.6) Triducer
  • (4.10~4.16)
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (一)认识微服务
  • (转)大型网站架构演变和知识体系
  • (转)视频码率,帧率和分辨率的联系与区别
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 药厂业务系统 CPU爆高分析
  • .NET/C# 使用反射注册事件
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .skip() 和 .only() 的使用
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @RequestMapping 的作用是什么?
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [20180129]bash显示path环境变量.txt