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();

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

 package com.example.htmldaimachakanqi;

 import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL; import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText; public class MainActivity extends Activity {
private EditText et_content; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_content = (EditText) findViewById(R.id.et_content);
} public void onClick(View view) throws UnsupportedEncodingException {
new AsyncTask<String, Void, String>() {
@Override
protected String doInBackground(String... params) {
StringBuffer buffer=new StringBuffer();
try {
Log.d("bh", params[0]);
// 封装了URL对象
URL url = new URL(params[0]);
// 获取http连接对象
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
// 设置请求的方式
conn.setRequestMethod("POST");
// 设置请求的超时时间
conn.setReadTimeout(5000);
conn.setConnectTimeout(5000);
//设置连接是否可以输出
conn.setDoOutput(true);
//设置连接是否可以输入
conn.setDoInput(true);
//告诉服务器客户端提交的数据类型(表单数据)
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
OutputStream output=conn.getOutputStream();
output.write("username=老师".getBytes("UTF-8"));
output.close();
// 获取状态码
int code = conn.getResponseCode();
Log.d("bh",code+"");
if (code == 200) {// 请求成功
Log.d("bh",conn.getHeaderFields().toString());
// 获取响应消息的实体内容
InputStreamReader reader = new InputStreamReader(
conn.getInputStream());
char[] charArr = new char[1024 * 8];
int len = 0;
while ((len = reader.read(charArr)) != -1) {
// 字符数组转字符串
String str = new String(charArr, 0, len);
// 在结尾追加字符串
buffer.append(str);
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return buffer.toString();
} protected void onPostExecute(String result) {
// 设置字符串到编辑框
et_content.setText(result);
};
}.execute("http://192.168.1.100:8080/WEB/TestServlet");
}
}

post方式请求数据的更多相关文章

  1. get和post方式请求数据,jsonp

    get方式请求数据: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #289c97 } p.p2 { ma ...

  2. android 之HttpURLConnection的post,get方式请求数据

    get方式和post方式的区别: 1.请求的URL地址不同: post:"http://xx:8081//servlet/LoginServlet" get:http://xxx: ...

  3. C# http请求数据

    http中get和post请求的最大区别:get是通过URL传递表单值,post传递的表单值是隐藏到 http报文体中 http以get方式请求数据 /// <summary> /// g ...

  4. region URL请求数据

    #region URL请求数据 /// <summary> /// HTTP POST方式请求数据 /// </summary> /// <param name=&quo ...

  5. JAVA通过HTTP方式获取数据

    测试获取免费天气数据接口:http://www.weather.com.cn/data/sk/101190408.html URL数据如下图: 代码部分: package https; import ...

  6. 前端向服务器请求数据并渲染的方式(ajax/jQuery/axios/vue)

    原理: jQuery的ajax请求:complete函数一般无论服务器有无数据返回都会显示(成功或者失败都显示数据): return result

  7. Android传统HTTP请求get----post方式提交数据(包括乱码问题)

    1.模仿登入页面显示(使用传统方式是面向过程的) 使用Apache公司提供的HttpClient  API是面向对象的 (文章底部含有源码的连接,包括了使用async框架) (解决中文乱码的问题.主要 ...

  8. vue的请求数据方式

    一,vue-resource请求数据 介绍:vue-resource请求数据方式是官方提供的一个插件 步骤: 1,npm安装     npm  install vue-resource  --save ...

  9. Ajax请求数据的两种方式

    ajax 请求数据的两种方法,有需要的朋友可以参考下. 实现ajax 异步访问网络的方法有两个.第一个是原始的方法,第二个是利用jquery包的 原始的方法不用引入jquery包,只需在html中编写 ...

随机推荐

  1. android button click事件

    package a.a; import android.app.Activity;import android.os.Bundle;import android.view.View;import an ...

  2. Java中的基本类型和包装类型区别

    首先看一下几个测试题,验证一下java中对基本类型和包装类型的理解,看看最后输出的答案对不对,答案在这篇博客中哦: // 第一题: 基本类型和包装类型 int a = 100; Integer b = ...

  3. 协程分析之context上下文切换

    协程现在已经不是个新东西了,很多语言都提供了原生支持,也有很多开源的库也提供了协程支持. 最近为了要给tbox增加协程,特地研究了下各大开源协程库的实现,例如:libtask, libmill, bo ...

  4. Ubuntu下面怎么连接drcom校园网?(重庆大学实测可行)

    之前因为ubuntu下面不能连drcom接校园头疼了半天,我们学校自带的客户端成功运行了,但是还是不能上网.\ 于是我百度了半天,搜了一堆教程...因为技术太渣好多教程里面不会修改参数,然后都不能成功 ...

  5. jvm 这我就能会了 擦

    最近老有人问jvm,恕我直言,完蛋了,不会,慢慢学吧,开始第一个学习,后续补充,走起... 我看的他的https://www.cnblogs.com/dingyingsi/p/3760447.html ...

  6. 工厂模式vs简单工厂

    前言 工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断 ...

  7. webpack的code spliting与chunks

    webpack的code spliting与chunks :https://blog.csdn.net/liuqi332922337/article/details/53020992

  8. dp(过河问题)

    http://codeforces.com/gym/101492/problem/E Teamwork is highly valued in the ACM ICPC. Since the begi ...

  9. redis缓存架构-03-redis下的replication以及master+slave

    1.master和slave的读写分离(水平扩容支持读高并发) 2.master主从复制流程 master开始复制给slave前的认证流程 master向slave复制流程 2.1 无磁盘化复制配置 ...

  10. How Many Answers Are Wrong (HDU - 3038)(带权并查集)

    题目链接 并查集是用来对集合合并查询的一种数据结构,或者判断是不是一个集合,本题是给你一系列区间和,判断给出的区间中有几个是不合法的. 思考: 1.如何建立区间之间的联系 2.如何发现悖论 首先是如何 ...