Android中的几种网络请求方式

java.net包中的HttpURLConnection类


Get方式:

// Get方式请求  
public static void requestByGet() throws Exception { 
    String path = "https://reg.163.com/logins.jsp?id=helloworld&pwd=android"; 
    // 新建一个URL对象  
    URL url = new URL(path); 
    // 打开一个HttpURLConnection连接  
    HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); 
    // 设置连接超时时间  
    urlConn.setConnectTimeout(5 * 1000); 
    // 开始连接  
    urlConn.connect(); 
    // 判断请求是否成功  
    if (urlConn.getResponseCode() == HTTP_200) { 
        // 获取返回的数据  
        byte[] data = readStream(urlConn.getInputStream()); 
        Log.i(TAG_GET, "Get方式请求成功,返回数据如下:"); 
        Log.i(TAG_GET, new String(data, "UTF-8")); 
    } else { 
        Log.i(TAG_GET, "Get方式请求失败"); 
    } 
    // 关闭连接  
    urlConn.disconnect(); 
} 

 

Post方式:
// Post方式请求  
public static void requestByPost() throws Throwable { 
    String path = "https://reg.163.com/logins.jsp"; 
    // 请求的参数转换为byte数组  
    String params = "id=" + URLEncoder.encode("helloworld", "UTF-8") 
            + "&pwd=" + URLEncoder.encode("android", "UTF-8"); 
    byte[] postData = params.getBytes(); 
    // 新建一个URL对象  
    URL url = new URL(path); 
    // 打开一个HttpURLConnection连接  
    HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); 
    // 设置连接超时时间  
    urlConn.setConnectTimeout(5 * 1000); 
    // Post请求必须设置允许输出  
    urlConn.setDoOutput(true); 
    // Post请求不能使用缓存  
    urlConn.setUseCaches(false); 
    // 设置为Post请求  
    urlConn.setRequestMethod("POST"); 
    urlConn.setInstanceFollowRedirects(true); 
    // 配置请求Content-Type  
    urlConn.setRequestProperty("Content-Type", 
            "application/x-www-form-urlencode"); 
    // 开始连接  
    urlConn.connect(); 
    // 发送请求参数  
    DataOutputStream dos = new DataOutputStream(urlConn.getOutputStream()); 
    dos.write(postData); 
    dos.flush(); 
    dos.close(); 
    // 判断请求是否成功  
    if (urlConn.getResponseCode() == HTTP_200) { 
        // 获取返回的数据  
        byte[] data = readStream(urlConn.getInputStream()); 
        Log.i(TAG_POST, "Post请求方式成功,返回数据如下:"); 
        Log.i(TAG_POST, new String(data, "UTF-8")); 
    } else { 
        Log.i(TAG_POST, "Post方式请求失败"); 
    } 
} 

 


二.   org.apache.http包中的HttpGet和HttpPost类


Get方式:

// HttpGet方式请求  
public static void requestByHttpGet() throws Exception { 
    String path = "https://reg.163.com/logins.jsp?id=helloworld&pwd=android"; 
    // 新建HttpGet对象  
    HttpGet httpGet = new HttpGet(path); 
    // 获取HttpClient对象  
    HttpClient httpClient = new DefaultHttpClient(); 
    // 获取HttpResponse实例  
    HttpResponse httpResp = httpClient.execute(httpGet); 
    // 判断是够请求成功  
    if (httpResp.getStatusLine().getStatusCode() == HTTP_200) { 
        // 获取返回的数据  
        String result = EntityUtils.toString(httpResp.getEntity(), "UTF-8"); 
        Log.i(TAG_HTTPGET, "HttpGet方式请求成功,返回数据如下:"); 
        Log.i(TAG_HTTPGET, result); 
    } else { 
        Log.i(TAG_HTTPGET, "HttpGet方式请求失败"); 
    } 
} 

Post方式:

// HttpPost方式请求  
public static void requestByHttpPost() throws Exception { 
    String path = "https://reg.163.com/logins.jsp"; 
    // 新建HttpPost对象  
    HttpPost httpPost = new HttpPost(path); 
    // Post参数  
    List<NameValuePair> params = new ArrayList<NameValuePair>(); 
    params.add(new BasicNameValuePair("id", "helloworld")); 
    params.add(new BasicNameValuePair("pwd", "android")); 
    // 设置字符集  
    HttpEntity entity = new UrlEncodedFormEntity(params, HTTP.UTF_8); 
    // 设置参数实体  
    httpPost.setEntity(entity); 
    // 获取HttpClient对象  
    HttpClient httpClient = new DefaultHttpClient(); 
    // 获取HttpResponse实例  
    HttpResponse httpResp = httpClient.execute(httpPost); 
    // 判断是够请求成功  
    if (httpResp.getStatusLine().getStatusCode() == HTTP_200) { 
        // 获取返回的数据  
        String result = EntityUtils.toString(httpResp.getEntity(), "UTF-8"); 
        Log.i(TAG_HTTPGET, "HttpPost方式请求成功,返回数据如下:"); 
        Log.i(TAG_HTTPGET, result); 
    } else { 
        Log.i(TAG_HTTPGET, "HttpPost方式请求失败"); 
    } 
} 

Android--7种网络请求方式 1):HttpClient 方式获取网络数据 2): HttpURLConnection 使用原始方式获取数据 3): Volley 方式实现图片加载 4):XUtil方式获取网络 5):ImageLoader 方式加载图片 6):OkHttp 方式获取网络请求。 立即下载

相关推荐

Android开发中的几种网络请求方式详解

本篇文章主要包括Android中的几种网络请求方式详解,具有一定的参考价值,有需要的可以了解一下。

安卓——http网络请求——笔记

长连接:在一个TCP连接上可以发送多个HTTP请求和接收多个HTTP响应。相比于短连接,长连接可以减少TCP连接的建立和关闭的开销,提高网络传输效率。当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间。短链接:客户端和服务器每次进行操作,就建立一次连接,当任务结束就中断连接。1、Get请求:获取服务器中的资源。2、post :向服务器提交数据。

2303_76230584的博客 1021

Silvaco TCAD | 从PIN到APD:高性能光电探测器的仿真设计与优化

本文详细介绍了使用Silvaco TCAD进行光电探测器仿真设计与优化的全过程,从基础的PIN结构到高性能APD的实现。通过实战案例和代码示例,展示了如何优化器件参数、实现雪崩效应以及进行高级仿真分析,帮助工程师提升光电探测器的量子效率和响应速度。

weixin_29218509的博客 427

Android常见的网络请求方法

当我们进行Android开发的时候可能99%的情况下使用的都是POST和GET这两种方式。 以下请求是已Android前端开发场景适当讲解的。 这也是我们最熟知的两种方式,但是当我们开发更高阶和更复杂的项目时这些更全面的网络知识,就会为我们提供更宽广的思路去解决问题。 接下来我们就逐个的讲解分析一下常见的HTTP Request Method 1.GET 请求指定的页面信息,并返回实体主体。这里对...

weixin_45365547的博客 1195

【python快速编程入门(第二版)黑马程序员课后编程题】

python快速编程入门(第二版)黑马程序员课后编程题

weixin_46167259的博客 1万+

STM32F103模拟SSI时序解析:实现高精度绝对式编码器位置读取

本文详细解析了如何在STM32F103微控制器上通过软件模拟SSI协议时序,实现高精度绝对式编码器的位置读取。文章从项目驱动出发,深入剖析了SSI通信原理、硬件电平转换连接、核心软件模拟代码实现及关键时序参数调试方法,并提供了使用示波器进行波形对齐与优化的实战指南,为成本敏感型工业控制与机器人项目提供了高性价比的解决方案。

weixin_29196315的博客 141

Android的HTTP请求方式

大多数网络连接的Android应用程序都将使用HTTP发送和接收数据 对于Http协议的工作原理,一句话概括的话,就是客户端向服务器发出一条HTTP请求,服务器收到之后会返回一些数据给客户端,然后客户端再对这些数据进行解析和处理就可以了。 HTTP协议的主要特点: 支持客户/服务器模式 简单快速:客户向服务端请求服务时,只需传送请求方式和路径。

Checkiming的博客 1万+

EB tresos配置指南:CAN通信信号收发全流程解析

本文详细解析了使用EB tresos配置工具实现AUTOSAR架构下CAN通信信号收发功能的全流程。从环境准备、COM模块信号定义、PduR路由配置、CanIf硬件抽象到CAN驱动层设置,提供了清晰的步骤指南和关键配置要点,帮助开发者快速打通从应用层到物理层的数据链路,实现可靠的CAN通信。

weixin_29192141的博客 508

Android常见的网络请求方式和基础知识

当我们进行Android开发的时候可能99%的情况下使用的都是POST和GET这两种方式。 以下请求是已Android前端开发场景适当讲解的。 这也是我们最熟知的两种方式,但是当我们开发更高阶和更复杂的项目时这些更全面的网络知识,就会为我们提供更宽广的思路去解决问题。 接下来我们就逐个的讲解分析一下常见的HTTP Request Method 1.GET 请求指定的页面信息,并返回实体主体...

u010451990的专栏 1144

LDRA Testbed软件静态分析_常见问题及处理

通过前面的几篇文章,LDRA Testbed软件静态分析的内容基本讲解完了,本篇文章将针对使用Testbed进行软件静态分析的常见问题进行介绍。 到此为止,LDRA Testbed软件静态分析的内容已经全部讲完,如果有问题,欢迎私信提问(不经常登录,回复可能不及时,见谅)。下一篇文章将开始讲解如何使用Testbed进行单元测试。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 2589

如何成为一名高级数字 IC 设计工程师(6-7)数字 IC 验证篇:DEBUG 技巧

不懂验证的设计不是好的设计;UVM 验证思维是指导缜密的芯片设计的导师;推荐书籍《芯片验证漫游指南》。

新芯设计的博客 1605

Android中的几种网络请求方式详解

Android应用经常会和服务器端交互,这就需要手机客户端发送网络请求,下面介绍四种常用网络请求方式,我这边是通过Android单元测试来完成这四种方法的,还不清楚Android的单元测试的同学们请看Android开发技巧总结中的Android单元测试的步骤一文。 java.net包中的HttpURLConnection类 Get方式: [java] view

逍遥飞鹤的专栏 1124

详解AUTOSAR:AUTOSAR架构中的配置文件(拓展篇—7)

查看AUTOSAR代码包时会发现一些这样格式的文件:xxx_PBcfg.c、xxx_Lcfg.c和xxx_Cfg.h,本篇博文讲一讲这几个配置文件的作用和特点。

不脱发的程序猿 2147

android 请求方式有哪些,Android中的几种网络请求方式详解

Android应用经常会和服务器端交互,这就需要手机客户端发送网络请求,下面整理四种常用网络请求方式。java.net包中的HttpURLConnection类Get方式:// Get方式请求public static void requestByGet() throws Exception {String path = "https://reg.163.com/logins.jsp?id=hel...

weixin_29791743的博客 862

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

android网络请求都有那几种方式,详解Android开发中的几种网络请求方式

应用程序经常与服务器端交互,这需要移动客户端发送网络请求,以下是常见的网络请求方式,爱站技术频道小编详解Android开发中的几种网络请求方式,希望对你学习有帮助!Java.NET包中的HttpURLConnection类Get方式:// Get方式请求public static void requestByGet() throws Exception {String path = "http:/...

weixin_39943799的博客 1020

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

android网络请求都有那几种方式,Android中的几种网络请求方式详解

Android应用常常会和服务器端交互,这就须要手机客户端发送网络请求,下面介绍四种经常使用网络请求方式,我这边是经过Android单元测试来完成这四种方法的,还不清楚Android的单元测试的同窗们请看Android开发技巧总结中的Android单元测试的步骤一文。javajava.net包中的HttpURLConnection类androidGet方式:apache// Get方式请求publ...

weixin_26851157的博客 2135

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

浅谈Android中的几种网络请求方式

Android应用经常会和服务器端交互,这就需要手机客户端发送网络请求,下面介绍四种常用网络请求方式。 java.net包中的HttpURLConnection类 Get方式:   [java] view plaincopy // Get方式请求   public static void requestByGet() throws Exception {       String p...

Kameleon 1465
上一篇: Android上图片压缩方式
下一篇: JNI 数据类型转换(转)
Li Chuan
博客等级 码龄14年 0粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值