URL请求的类别分为二类,GET与POST请求。二者的区别在于:
1、get请求可以获取静态页面,也可以把参数放在URL字串后面进行传递。
2、post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。
来一张图,大概了解一下HttpUrlConnection的使用流程。

接下来,分别上get和post的代码:

GET请求:

public void httpUrlConnetionGet() {try {//创建URL对象URL url = new URL("http://www.baidu.com");//Get请求可以在Url中带参数: ①url + "?bookname=" + name;②url="http://www.baidu.com?name=zhang&pwd=123";//返回一个URLConnection对象,它表示到URL所引用的远程对象的连接HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();//在这里设置一些属性,详细见UrlConnection文档,HttpURLConnection是UrlConnection的子类//设置连接超时为5秒httpURLConnection.setConnectTimeout(5000);//设定请求方式(默认为get)httpURLConnection.setRequestMethod("GET");//建立到远程对象的实际连接httpURLConnection.connect();//返回打开连接读取的输入流,输入流转化为StringBuffer类型,这一套流程要记住,常用BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));String line = null;StringBuffer stringBuffer = new StringBuffer();while ((line = bufferedReader.readLine()) != null) {//转化为UTF-8的编码格式line = new String(line.getBytes("UTF-8"));stringBuffer.append(line);}Log.e("Get请求返回的数据", stringBuffer.toString());bufferedReader.close();httpURLConnection.disconnect();} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}

POST请求:

public void httpUrlConnectionPost() {try {//创建URL对象URL url = new URL("http://www.baidu.com");//返回一个URLConnection对象,它表示到URL所引用的远程对象的连接HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();//在这里设置一些属性,详细见UrlConnection文档,HttpURLConnection是UrlConnection的子类//设置连接超时为5秒httpURLConnection.setConnectTimeout(5000);//设定请求方式(默认为get)httpURLConnection.setRequestMethod("POST");// 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在// http正文内,因此需要设为true, 默认情况下是false;httpURLConnection.setDoOutput(true);// 设置是否从httpUrlConnection读入,默认情况下是true;httpURLConnection.setDoInput(true);// Post 请求不能使用缓存httpURLConnection.setUseCaches(false);//这边开始设置请求头// 设定传送的内容类型是可序列化的java对象(如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException)httpURLConnection.setRequestProperty("Content-type", "application/x-java-serialized-object");//方法setRequestProperty(String key, String value)设置一般请求属性。// 连接,从上述url.openConnection()至此的配置必须要在connect之前完成,httpURLConnection.connect();//这边设置请内容//getOutputStream()里默认就有connect()了,可以不用写上面的连接//接下来我们设置post的请求参数,可以是JSON数据,也可以是普通的数据类型OutputStream outputStream = httpURLConnection.getOutputStream();/*** JSON数据的请求* outputStream.write(stringJson.getBytes(), 0, stringJson.getBytes().length);* outputStream.close();* **//*** 字符串数据的请求DataOutputStream dataOutputStream = new DataOutputStream(outputStream);String content = "username=" + username + "&password=" + password;dataOutputStream.writeBytes(content);dataOutputStream.flush();dataOutputStream.close();* **///读取返回的数据//返回打开连接读取的输入流,输入流转化为StringBuffer类型,这一套流程要记住,常用BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));String line = null;StringBuffer stringBuffer = new StringBuffer();while ((line = bufferedReader.readLine()) != null) {//转化为UTF-8的编码格式line = new String(line.getBytes("UTF-8"));stringBuffer.append(line);}Log.e("POST请求返回的数据", stringBuffer.toString());bufferedReader.close();httpURLConnection.disconnect();} catch (MalformedURLException e) {e.printStackTrace();} catch (ProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}

HttpUrlConnection的简单使用--get和post的简单使用相关推荐

  1. java的简单工厂模式_java设计模式之简单工厂模式

    简单工厂模式的概念 就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例. ...

  2. Manage,管道的简单应用,进程池,队列的简单应用

    day37---Manage,管道的简单应用,进程池,队列的简单应用 今日内容: 1 生产者消费者模型 主要是为解耦 借助队列来实现生产者消费者模型 栈:先进后出(First In Last Out ...

  3. 用python画画简单代码_Python3使用PyQt5制作简单的画板/手写板实例

    1.前言 版本:Python3.6.1 + PyQt5 写一个程序的时候需要用到画板/手写板,只需要最简单的那种.原以为网上到处都是,结果找了好几天,都没有找到想要的结果. 网上的要么是非python ...

  4. yolo系列算法思想流程简单讲解概述————(究极简单的讲述和理解)

           在我想学习算法的时候,我看某些大佬特别喜欢上来就讲论文,给我搞的贼难受,毕竟本人太辣鸡了,上来这么搞看不懂,经过诸多算法的这样折磨.我打算根据自己的亲身经历和学习过程中遇到的问题出一期, ...

  5. 请尽量让事情变得简单,让生活变得简单

    请尽量让事情变得简单,让生活变得简单 没有找到合适的标题,只是想纪录一些这两天在干的事情.周六周日,昏昏沉沉的,两天下午都窝在被窝里,好舒服啊,好长时间没睡得这么舒坦了.睡觉归睡觉,生活还是需要继续, ...

  6. 计算机组成原理简单模型机实验,计算机组成原理简单模型机实验.doc

    计算机组成原理简单模型机实验 实验四 简单模型机实验 1.1实验目的 1)将微程序控制器模块通过总线同运算器模块.存储器模块联机,组成一台模型计算机: 2)用微程序控制器控制模型机数据通路: 3)通过 ...

  7. 用python画简单雪花剪纸步骤图解_简单雪花剪纸步骤图解

    简单雪花剪纸步骤图解 民间剪纸的表现语言不是简单的平铺直叙,而是托物寄语,借用那些约定成俗的观念化形象,来寄托人们对美好生活的向往,对吉祥幸福的期盼.下面是小编为大家整理的.简单雪花剪纸步骤图案,希望 ...

  8. HttpURLConnection调用webservice,HTTP调用webservice,简单的webservice调用

    以前调用webservice一般使用axis.axis2先生成java类后,直接引用,多方便.但是有的webservice接口非常的函数,生成的java类非常多,有没有一种非常简化的方法. axis2 ...

  9. java发送简单邮件_Java程序实现发送简单文本邮件

    /** * Java程序实现发送简单文本邮件 * * @author Administrator * */ public class SendTextMail { // 定义发件人地址 public  ...

  10. 遗传算法的简单介绍以及模式定理的简单证明

    遗传算法   遗传算法(Genetic Algorithm,GA),最早是由美国的John holland在20世纪70年代提出.算法通过模拟达尔文生物进化论的自然选择以及遗传学机理的生物进化过程来搜 ...

最新文章

  1. OC HelloWord开始学习 1
  2. java url 解码 编码 奇怪的解码两次
  3. LeetCode 45跳跃游戏46全排列
  4. 音视频技术开发周刊 91期
  5. RESET MASTER和RESET SLAVE使用场景和说明【转】
  6. SequenceFile文件
  7. mysql多表添加怎么写_mysql多表连接的几种写法
  8. mysql format 格式化 返回值
  9. YOLOv5 的妙用:学习手语,帮助听力障碍群体
  10. JSK-19 加一【入门】
  11. [再学Python] - 3 - 异常处理 try…except…
  12. linux大一实验报告,linux实验报告
  13. SparkStreaming DStream入门及其算子应用
  14. 【车间调度】基于matlab粒子群算法求解车间生产调度问题【含Matlab源码 245期】
  15. 计算机多媒体英语,基于计算机多媒体的英语个性化教学
  16. 如何在Linux上下载MongoDB
  17. 图层蒙版和图层剪贴路径_PS蒙版使用教程、快速蒙版、剪切蒙版、矢量蒙版、图层蒙版要点...
  18. 手机里舍不得删的48条短信
  19. 证券业上云内参:国泰君安
  20. 喜马拉雅转道港交所:上半年亏损3个亿,负债200亿元,现金流紧张

热门文章

  1. (四)洞悉linux下的Netfilteriptables:包过滤子系统iptable_filter
  2. Linux Scheduling Domains
  3. Linux acpi off报告ACPI bug处理方法
  4. android app唯一标识符,android 唯一识别码笔记
  5. redis java 下载_linux系统下安装redis以及java调用redis
  6. Cocos2d-x 3.2 的内存管理详解
  7. 题目241-字母统计
  8. python批量下载静态页面_Python selenium如何打包静态网页并下载
  9. java当前时间长整数值_在Java中获取当前年份的整数值
  10. php百度地图api的geocoder,百度地图API提供Geocoder类