Android 网络编程(3)——使用URLConnection提交请求

Android 中使用HttpURLConnection进行网络请求详解 前言:下面使用HttpURLConnection进行POST的请求,GET请求不需要传递参数自然你也就会使用了。 一、创建UrlConnManager类,提供getHttpURLConnection()方法,配置默认参数,并返回HttpURLConnection的实例。 之后再写一个postParams方法,组织一下请求参数 并将请求参数写入输出流。 代码如下: public class UrlConnManager { //配置默认参数,返回HttpURLConnection的实例 pub 阅读详情
URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和URL之间的通信连接。程序可以通过URLConnection实例向该URL发送请求,读取URL引用的资源
通常创建一个和URL的连接,并发送请求、读取此URL引用的资源需要如下几个步骤:
  1. 通过调用URL对象openConnection()方法来创建URLConnection对象
  2. 设置URLConnection的参数和普通请求属性
  3. 如果只是发送GET方法请求,使用connect方式建立和远程资源之间的实际连接即可;如果需要发送POST方式的请求,需要获取URLConnection实例对应的输出流来发送请求参数
  4. 远程资源变为可用,程序可以访问远程资源的头字段,或通过输入流读取远程资源的数据
在建立和远程资源的实际连接之前,程序可以通过如下方法来设置请求头字段
  • setAllowUserInteraction:设置该URLConnection的allowUserInteraction请求头字段的值
  • setDoInput:设置该URLConnection的doinput请求头字段的值
  • setDoOutput:设置该URLConnection的dooutput请求头字段的值
  • setIfModifiedSince:设置该URLConnection的ifModifiedSince请求头字段的值
  • setUseCaches:设置该URLConnection的useCaches请求头字段的值
除此之外,还可以使用如下方法来设置或增加通用头字段
  • setRequestProperty(String key, String value):设置该URLConnection的key请求头字段的值为value,如以下代码所示:
conn.setRequestProperty("accept","*/*");
  • addRequestProperty(String key, String value):为该URLConnection的key请求头字段的增加value值,该方法并不会覆盖原请求头字段的值,而是将新值追加到原请求头字段中
当远程资源可用之后,程序可以使用以下方法用于访问头字段和内容
  • Object getContent():获取该URLConnection的内容
  • String getHeaderField(String name):获取指定响应头字段的值
  • getInputStream():返回该URLConnection对应的输入流,用于获取URLConnection响应的内容
  • getOutputStream():返回该URLConnection对应的输出流,用于向URLConnection发送请求参数
如果既要使用输入流读取URLConnection响应的内容,也要使用输出流发送请求参数,一定要先使用输出流,在使用输入流

getHeaderField()方法用于根据响应头字段来返回对应的值。而某些头字段由于经常需要访问,所有Java提供了以下方法来访问特定响应头字段的值
  • getContentEncoding:获取content-enconding响应头字段的值
  • getContentLength:获取content-length响应头字段的值
  • getContentType:获取content-type响应头字段的值
  • getDate():获取date响应头字段的值
  • getExpiration():获取expires响应头字段的值
  • getLastModified():获取last-modified响应头字段的值
URL请求的类别:分为二类,GET和POST请求。二者的区别在于:
1)、get请求可以获取静态页面,也可以把参数放在URL字符串后面,传递给servlet(利用java编写的服务端程序)
2)、post与get的不同之处在post的参数不是放在URL字符串里面,而是放在http请求的正文内。
post请求可以向服务器传送数据,而且数据放在HTML HEADER内一起传送到服务器URL地址,数据对用户不可见。而get是把参数数据队列加到提交的URL中,值和表单内各各个字段一一对应,例如(http://www.baidu.com/s?w=%C4&inputT=2710)。get请求机制用的是URL地址里面,通过?号间隔,然后以name=value的形式给客户端传递参数。
get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
get安全性非常低,post安全性较高。

例子:使用URLConnection提交请求
AndroidManifest.xml——主要添加访问网络权限
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.url_get_post"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.url_get_post.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <Button 
        android:id="@+id/get"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"        
        android:background="#00ffff"
        android:text="get"/>
    <Button 
        android:id="@+id/post"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_marginTop="40dp"      
        android:background="#00ffff"
        android:text="post"/>

</LinearLayout>
GetPostUtil.java——get和post两种请求方式
package com.example.url_get_post;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;

import android.util.Log;

public class GetPostUtil {
	
	/**
	 * 向指定URL发送GET方法的请求
	 * @param url	发送请求的URL
	 * @param parmas	请求参数,请求参数应该是name1=value1&name2=value2的形式
	 * @return URL所代表远程资源的响应
	 */
	public static String sendGet(String url, String parmas){
		String result = "";
		BufferedReader bufferedReader = null;
		String urlName = url + "?" + parmas;
		try {
				URL realUrl = new URL(urlName);
				//打开和URL之间的连接
				try {
						URLConnection urlConnection = realUrl.openConnection();
						/*设置通用请求属性*/
						//告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。
						urlConnection.setRequestProperty("accept", "*/*");
						urlConnection.setRequestProperty("connection", "Keep-Alive");
						//浏览器表明自己的身份(是哪种浏览器)
						urlConnection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14)");
						//建立实际连接
						urlConnection.connect();
						Log.e("contentType", ""+urlConnection.getContentType());
						Log.e("contentLength", ""+urlConnection.getContentLength());
						Log.e("contentEncoding", ""+urlConnection.getContentEncoding());
						Log.e("contentDate", ""+urlConnection.getDate());
						//获取所有相应头字段
						Map<String, List<String>> map = urlConnection.getHeaderFields();
						//遍历所有响应头字段
						for (String key:map.keySet()){
							Log.i("GET方式请求", ""+map.get(key));
						}
						//定义BufferReader输入流来读取URL的响应
						bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
						String line;
						for (;(line = bufferedReader.readLine()) != null;){
							result += "\n" + line;
						}
				} catch (IOException e) {
					// TODO Auto-generated catch block
					Log.e("GET方式请求", "发送GET请求异常"+e);
					e.printStackTrace();
				}
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (null != bufferedReader){
				try {
					bufferedReader.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		return result;
	}
	
	/**
	 * 向指定URL发送POST方法的请求
	 * @param url	发送请求的URL
	 * @param parmas	请求参数,请求参数应该是name1=value1&name2=value2的形式
	 * @return URL所代表远程资源的响应
	 */
	public static String sendPost(String url, String parmas){
		String result = "";
		PrintWriter printWriter = null;
		BufferedReader bufferedReader = null;
		try {
				URL realUrl = new URL(url);
				//打开和URL之间的连接
				try {
						URLConnection urlConnection = realUrl.openConnection();
						//设置通用请求属性
						urlConnection.setRequestProperty("accept", "*/*");
						urlConnection.setRequestProperty("connection", "Keep-Alive");
						urlConnection.setRequestProperty("user-agent", "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1)");
						//发送POST请求必须设置如下两行
						urlConnection.setDoOutput(true);
						urlConnection.setDoInput(true);
						//获取所有相应头字段
						Map<String, List<String>> map = urlConnection.getHeaderFields();
						//遍历所有响应头字段
						for (String key:map.keySet()){
							Log.i("POST方式请求", ""+map.get(key));
						}
						//获取URLConnection对象对应的输出流
						printWriter = new PrintWriter(urlConnection.getOutputStream());
						//发送请求参数
						printWriter.print(parmas);
						//flush输出流缓冲
						printWriter.flush();
						//定义BufferReader输入流来读取URL的响应
						bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
						String line;
						for (;(line = bufferedReader.readLine()) != null;){
							result += "\n" + line;
						}
				} catch (IOException e) {
					// TODO Auto-generated catch block
					Log.e("GET方式请求", "发送GET请求异常"+e);
					e.printStackTrace();
				}
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (null != bufferedReader){
				try {
					bufferedReader.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			if (null != printWriter){
				printWriter.close();
			}
		}
		return result;
	}
}
MainActivity.java
package com.example.url_get_post;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.app.Activity;

public class MainActivity extends Activity {
	private Button get,post;
	private String response;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        get = (Button)this.findViewById(R.id.get);
        post = (Button)this.findViewById(R.id.post );
        
        get.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				new Thread(){
					@Override
					public void run() {
						response = GetPostUtil.sendGet("http://www.jju.edu.cn/", null);
						Log.i("response", response);
					};
				}.start();
			}
		});
        
        post.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				new Thread(){
					@Override
					public void run() {
						response = GetPostUtil.sendPost("http://www.jju.edu.cn/", null);
//						Log.i("response", response);
					};
				}.start();
			}
		});
    }
    
}
点击【get】按钮,打印信息
点击【post】按钮,打印信息

头字段信息都是一样的,对于post出现的异常,还没有找到原因,先记录下。在这里希望大神们,指点小弟我!!!还是因为我所用的网站是我学校的网站,不能write请求?

urlConnection.setDoOutput(true);// 使用 URL 连接进行输出
urlConnection.setDoInput(true);// 使用 URL 连接进行输入
<strong>下面有关创建URLconnection对象,与服务器之间建立连接过程</strong>:
来自: http://www.cnblogs.com/shyang--TechBlogs/archive/2011/03/21/1990525.html
第一步是creat:URLConnection urlConnect = url.openConnection();
第二步是connect:urlConnection.connect();//这两个是不同的
在created和connected之间可以设置一些变量选项(如setDoInput,超时等),而如果connect之后再设置就会引发异常
在需要连接才能执行的操作(如getInputStream等应用层操作),程序会暗中(implicitly)执行连接。一旦连接可用,就可以访问获取资源,如执行getInputStream()等,对于HTTPURLConnect,还有conn。getResponseCode()==200来判断服务器是否返回正确的应答码以表明请求被接受。
在URLConnection中,有一个域boolean connected,值为true表明已经建立到指定URL的连接,false则没有。
connect()当连接还未建立时,打开一个communications link,而如果这个链接已经被打开(connect值设置为true),否则ignore it
URL url = new URL("http://www.google.cn");
URLConnection conn = url.openConnection();
conn.setConnectTimeout(10000);
conn.connect();
InputStream inStream = conn.getInputStream();
当执行执行完openConnection()之后,域connected值还是false,说明这时候还未连接。等执行到connect()之后,connected才变为true,说明这时候才完成连接。而当注释掉connect()之后,在运行程序,connected值到getInputStream执行完又变为true,getInputStream暗中执行了连接。


安卓案例:利用URLConnection下载音乐 利用URLConnection下载Tomcat服务器上的音乐文件然后进行播放 阅读详情

相关推荐

安卓案例:利用URLConnection下载图片

利用URLConnection下载网络图片;利用Python爬取单张网络图片

howard2005的专栏 1598

Android网络技术之HttpURLConnection

不得不说,安卓开发者们还是很幸运的。 为咋?以前HTTP协议不是有两种方式来访问网络吗,分别是HttpURLConnection和HttpClient,HttpClient的功能在Android6.0系统中被完全删除。 HttpURLConnection继承自URLConnection,因此也可以用于向指定网站发送GET(表示希望从服务器那里获取...

小红妹 3万+

安卓案例:利用URLConnection下载网页

利用URLConnection下载网页

howard2005的专栏 1360

Android学习——HttpURLConnection

HttpURLConnection 1.概述 如今,移动端APP渗透到各行各业,数量难以计数,几乎所有应用都会使用到网络,掌握Android网络编程是APP开发是核心技术,必备技术。这是因为移动设备的计算能力存储能力都是有限的。因此移动设备依赖网络计算、存储就成为了主要的方式,重要程度就不言而喻了。 Android完全支持JDK本身的TCP、UDP网络通信的API,也就是我们在JAVASE阶段讲解...

UUUUUltraman的博客 2466

博科的SAN交换机基本操作

2、添加用户testuser赋予user权限可以访问1-128VF默认VF为128账号描述"Test user"密码为password123。1、创建zone别名(100是指当前设备Domain ID,1和2是指对应的index号)2,删除新接入设备的ZONE或保持ZONE配置一致。3、将zone添加到当前生效的CFG中。2、将zone添加到当前生效的CFG中。3、将zone添加到当前生效的CFG中。3,将添加的级联端口持续关闭。4、将当前zone生效。4、将当前zone生效。1、查看当前所有用户。

chenjunokok的博客 1837

SAP批量数据导入实战:BDC、CATT、LSMW三大工具保姆级对比教程

本文深入对比了SAP系统中三大批量数据导入工具BDC、CATT和LSMW的核心定位、适用场景与实战操作。BDC适合复杂逻辑的编程式处理,CATT适合业务用户快速录制回放,LSMW则是数据迁移项目的结构化首选。文章提供了详细的选型决策框架、性能优化技巧及常见陷阱规避指南,帮助SAP顾问和开发者高效完成数据批量维护任务。

weixin_29213525的博客 151

Android 之 HTTP请求方式:HttpURLConnection

答:一种多用途、轻量极的HTTP客户端,使用它来进行HTTP操作可以适用于大多数的应用程序。虽然HttpURLConnection的API提供的比较简单,但是同时这也使得我们可以更加容易地去使 用和扩展它。继承至URLConnection,抽象类,无法直接实例化对象。通过调用() 方法获得对象实例,默认是带gzip压缩的;

leyang0910的博客 1767

从Reset到Read:深入解析Rolling Shutter曝光流水线

本文深入解析Rolling Shutter(卷帘曝光)的工作原理,重点探讨Reset和Read信号在图像传感器中的关键作用。通过Reset-Read流水线机制,详细解释了曝光控制、时序调优及运动伪影补偿等核心技术,帮助读者理解卷帘曝光在高速摄影和动态场景中的应用。

weixin_42531925的博客 253

Android使用HttpURLConnection访问网络

Android使用HttpURLConnection访问网络 一、管理网络状态 使用网络进行数据通信前,需要先获取网络状态。 使用ConnectivityManager获取网络状态步骤: 1.获取ConnectivityManager对象 2.获取当前活动的网络NetworkInfo对象 3.判断当前网络状态是否为连接状态 4.在AndroidMainfest.xml中添加访问当前网络状态权限 //使用ConnectivityManager检查网络状态步骤 private boolean check

m0_66309026的博客 8400

基于STM32与FPGA Cyclone IV的FSMC高速数据通信实战解析

本文详细解析了基于STM32的FSMC接口与FPGA Cyclone IV实现高速并行数据通信的实战方案。通过将FPGA模拟为SRAM设备,构建了MCU与FPGA之间的高速数据通道,并深入探讨了硬件连接、STM32软件配置、FPGA逻辑设计及性能优化等关键步骤,为图像处理、高速采集等需要大数据量交换的嵌入式应用提供了稳定高效的通信解决方案。

swift5iosmith的博客 294

利用Python搭建用户画像系统

用户画像是当下很多企业都会提及的概念,多数情况下会和大数据以及营销挂钩。本文将对用户画像的相关知识进行进行简单的介绍,并利用Python去实现一个简单的用户画像系统。 1.什么是用户画像 用户画像可以理解成是海量数据的标签,根据用户的目标、行为和观点的差异,将他们区分为不同的类型,然后每种类型中抽取出典型特征,赋予名字、照片、一些人口统计学要素、场景等描述,形成一个人物原型 。 用户画像 =...

黎荣恒的博客 3万+

android 请求url,Android使用URLConnection提交请求的实现

URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和URL之间的通信连接。程序可以通过URLConnection实例向该URL发送请求,读取URL引用的资源。通常创建一个和URL的连接,并发送请求、读取此URL引用的资源需要如下几个步骤:Step1: 通过调用URL对象的openConnection()方法来创建URLConnection对象;...

weixin_36174545的博客 509

GPU硬件架构与微架构深度解析09-GPU寄存器文件深度解析

本文探讨GPU架构中大规模寄存器堆的设计与高效分配算法。寄存器文件作为GPU关键组件,支持大规模线程并行和快速数据存取。文章分析了多体寄存器堆的设计考量,包括端口数量、冲突避免和功耗管理,并比较了线性扫描、图着色等寄存器分配算法的特点。还介绍了寄存器压缩、动态分区等高级优化技术,以及NVIDIA Ampere架构的实际案例。这些技术对提升GPU计算性能和能效至关重要。

2301_79143213的博客 120

Android移动开发-使用URLConnection提交请求的实现

URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和URL之间的通信连接。程序可以通过URLConnection实例向该URL发送请求,读取URL引用的资源。 程序Demo示范了如何向Web站点发送GET请求、POST请求,并从Web站点取得响应。

_彼岸雨敲窗_的博客 1836

AI实时盯盘与素材更新迭代功能开发——千川素材投流系统完全指南

《AI驱动的千川素材投流系统完全指南》摘要 本文针对抖音电商生态中巨量千川平台的素材投放挑战,提出了一套AI驱动的实时盯盘与素材更新迭代解决方案。系统通过分层架构设计,整合数据采集、实时监控、AI分析和自动化执行模块,实现分钟级数据追踪与智能决策。核心功能包括实时数据采集、异常检测、自动化投放调整和素材生命周期管理,有效解决人工盯盘效率低、素材生命周期短、决策响应慢等痛点。系统采用Python+FastAPI技术栈,结合机器学习和自动化工具,提供从数据采集到决策执行的全链路解决方案,帮助商家提升投放效率和R

huanghm88的专栏 232

DSI3协议介绍

分布式系统接口(DSI)是一种通用且功能强大的总线协议,旨在将多个遥感器和执行器设备互连到中央控制模块。该网络的主要目标应用是汽车安全系统。这种应用的一些特点是需要低成本、高鲁棒性、中速互连,仅限于两根导线。此外,它必须具有故障安全性、确定性和良好的EMC特性。即使具有所有级别的智能和可编程性的设备都可以连接到网络,远程设备也必须能够通过简单的状态机实现。由于模块尺寸非常重要,因此中央模块和远程单元中的最小组件至关重要。

汽车电子软件领域知识分享 1万+

android发送http请求—-URLConnection、HttpURLConnection的使用

1. 使用 标准Java接口: 设计的类: java.net.* 基本步骤:1) 创建 URL 以及 URLConnection / HttpURLConnection 对象2) 设置连接参数3) 连接到服务器4) 向服务器写数据5)从服务器读取数据 例: try{//创建一个 URL 对象URL url =newURL(your_url);//创建一个 UR...

dazu7840的博客 126

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

安卓程序开发——网络编程应用创建一个Android 应用,练习URLConnection的用法。2.在布局文件添加ImageView Button两个控件3.在MainActivity添加相应控件

创建URL对象;通过调用URL对象的openConnection()方法来创建对象;设置URLConnection的参数;使用URLConnection的getInputStream()获得输入流;.(5)对输入流进行相应的处理。

WZY22502701的博客 474

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

网络编程(2)——连接父类URLConnection

在前面网络编程(1)中我们了解到如果想要访问其他主机的资源,那么就得知道该资源的URL。那么如果知道了该URL,我们该怎样去访问其主机上的资源呢?本文主要讲清楚Java语言编程的Android网络编程的最基础的父类URLConnectiion,该类是利用URL来实现主机资源的访问,其每个子类的特点都进一步优化并支持新的网络协议,达到从全面到局部,从广泛到精细的系统学习。 从JavaAPI中可以看

「Android之禅」公众号博主,和你分享有价值有思考的技术文章 2296

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

android的网络编程

URL通信 HTTP 英文全称为 Hyper Text Transfer Protocol,即超文本传输协议, 是一种详细规定了浏览器和万维网(World Wide Web,WWW) 服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。 HTTP 协议采用请求/响应(Request/Response)模式, 该工作模式单向、同步。在客...

a_KXX的博客 245

android获取URLConnection和HttpClient网络请求响应码

android获取URLConnection和HttpClient网络请求响应码 转自:http://www.open-open.com/lib/view/open1326868964593.html  前段时间,有朋友问我网络请求怎么监听超时,这个我当时也没有没有做过,就认为是try....catch...获取异常,结果发现没有获取到,今天有时间,研究了一下,发现是从响应中来获取的对象中获取

faithmy509的专栏 1348

使用URLConnection获取网页信息的基本流程

参考自core java v2, chapter3 Networking. 注:URLConnection的子类HttpURLConnection被广泛用于Android网络客户端编程,它与apache HttpClient是两种主要的客户端实现方式,google官方推荐使用HttpURLConnection. 使用URL类可以简单获取网页信息, URL url = new UR

jinhong_lu的博客 985

Android网络编程之总结

Android网络编程之总结 Android平台继承了java所支持的网络方式,还引进了Apache的Http的扩展包,并且提供单独的API(WIFI,蓝牙等)。所以在Android平台中,总共提供了3中网络接口,分别是: (1)    java.net.*(Java标准接口) (2)    org.apache(Apache接口) (3)    android.net.*(Android

oneHuang的专栏 710

android 联网技术 URLConnection HttpURLConnection使用

1. 使用 标准Java接口: 设计的类: java.net.* 基本步骤: 1) 创建 URL 以及 URLConnection / HttpURLConnection 对象 2) 设置连接参数 3) 连接到服务器 4) 向服务器写数据 5)从服务器读取数据 例: [code="java"] try { // 创建一个 URL 对象 URL ...

小苏博客--关注软件开发 138

URLConnection跟HTTPClient的比较

A Comparison of java.net.URLConnection and HTTPClient Since java.net.URLConnection and HTTPClient have overlappingfunctionalities, the question arises of why would you use HTTPClient.Here are a few

hmchxy444的专栏 606
上一篇: Android 网络编程(2)——URL互联网资源指针
下一篇: Linux shell脚本——sed命令操作记录
林知共创
博客等级 码龄15年 3435粉丝 97原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值