Android网络应用

本文介绍了TCP协议下Socket通信的基本原理及实现方法,探讨了URL和URLConnection类在资源访问中的应用,并深入分析了HTTP访问机制,包括HttpClient的使用。此外,还详细讲解了WebService的相关概念和技术实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.TCP协议
        | ServerSocket 服务端socket服务监听
                | Socket accept() 如果服务端接受到一个客户端的Socket请求,该方法返回一个与客户端Socket对应的Socket
                | ServerSocket(int port) 用指定端口port创建一个ServerSocket
                | ServerSocket(int port,int backlog) 增加一个用来改变连接队列长度的参数backlog
                | ServerSocket(int port,int backlog,InetAddress localAddr) 在机器存在多个IP地址的情况下,允许通过localAddr这个参数将ServerSocket绑定到指定IP
        | Socket 客户端
                | Socket(InetAddress/String remoteAddress,int port) 创建连接到指定主机,指定IP的socket
                | Socket(InetAddress/String remoteAddress,int port,InetAddress localAddr,int localPort) 创建连接到指定主机,指定IP的socket
                | InputStream getInputStream() 返回该Socket对象对应的输入流
                | OutputStream getOutputStream() 返回该Socket对应对应的输出流
二.URL 使用URL访问网络资源
        | 方法
                | String getFile() 获取此URL的资源名
                | String getHost() 获取此URL的主机名
                | String getPath() 获取此URL的路径部分
                | int getPort() 获取此URL的端口号
                | String getProtocol() 获取此URL的协议名称
                | String getQuery() 获取此URL的查询字符串部分
                | URLConnection openConnection() 返回一个URLConnection对象,代表URL所引用的远程对象的链接
                | InputStream openStream() 打开此URL的链接并返回一个用于读此URL资源的InputStream
        | 步骤  URLConnection
                | 调用openConnection()方法,创建URLConnection对象
                | 设置URLConnection参数和普通请求属性
                | 如果发送get请求,使用connect方法建立和远程资源的时间连接即可,如果是post方式,需要获取URLConnection实例对应的输出流来发送请求参数
                | 远程资源变为可用,程序可以访问远程资源的头字段,或通过输入流读取远程资源的数据
                        | setAllowUserInteraction 设置该URLConnection的allowUserInteraction请求头字段值
                        | setDoInput() 设置该URLConnection的doInput请求头字段值
                        | setDoOutput() 设置该URLConnection的doOutput请求头字段值
                        | setIfModifiedSince() 设置该设置该URLConnection的ifModifiedSince请求头字段值
                        | setUseCaches() 设置该URLConnection的useCaches请求头字段值
                        | setRequestProperty(String key,String value) 设置该URLConnection的key请求头字段值为value
                        | Object getContent() 获取该URLConnection的内容
                        | String getHeaderField(String name) 获取指定响应头字段的值
                        | getInputStream() 返回该URLConnection对应的输入流 用于获取URLConnection的响应内容
                        | getOutputStream() 返回该URLConnection对应的输出流,用于向URLConnection发送请求参数
                        | getConnectEncoding() 获取connect-encoding响应头字段值
                        | getConnectLength() 获取connect-length响应头字段值
                        | getConnectTyle() 获取connect-length响应头字段值
                        | getDate() 获取date响应头字段值
                        | getExpiration() 获取expires响应头字段值
                        | getLastModified() 获取last-modified响应头字段的值
三.使用HTTP访问网络资源
        | URLConnection
                | HttpURLConnection
                        | int getResponseCode() 获取服务器的响应代码
                        | String getResponseMessage() 获取服务器的响应消息
                        | String getRequestMethod() 获取发送请求的方法
                        | void setRequestMethod(String method) 设置发送请求的方法
        | HttpClient
                | 他是一个增强版的HttpURLConnection,用于发送Http请求,接收Http响应,但不会缓存服务器响应,不能执行Html页面中嵌入的JavaScript代码,也不会对页面进行解析处理
                |  使用方法
                        | 1 创建HttpClient对象
                        | 2 发送get请求,创建HttpGet对象,发送post请求,创建HttpPost对象
                        | 3 如需发送请求参数,调用setParams(HttpParams params)方法添加请求参数,对于HttpPost对象而言,也可调用setEntity(HttpEntity entity) 方法设置请求参数
                        | 4 调用execute(HttpUriRequest request) 发送请求,执行方法返回一个HttpResponse
                        | 5 调用HTTPResponse的getAllHeaders(),getHeaders(String name) 等方法获取服务器响应头.调用HttpResponse的getEntity()方法获取HttpEntity对象,此对象包含                                服务器响应内容
        | 使用WebView视图访问页面
                | void goBack() 后退
                | void goFoward() 前进
                | void loadUrl(String url) 加载指定Url对应的网页
                | boolean zoomIn() 方法网页
                | boolean zoomOut() 缩小网页
                | 加载HTML代码
                        | loadData(String data,String mimeType,String encoding) 可用于加载并显示Html代码(中文会乱码)
                        | loadDataWithBaseURL(String baseUrl,String data,String mimetype,String encoding,String historyUrl)
                                | data 指定加载的HTML代码
                                | mimeType 指定HTML的MIME类型,对于HTML可指定为text/html
                                | encoding 指定HTML代码所用的字符集
        | 使用WebView中的JavaScript调用Android的方法(WebSetting 工具类)
                | 调用WebSetting的setJavaScriptEnabled(true)启用JavaScript的调用功能
                | 调用WebView的addJavascriptInterface(Object object,String name) 方法将Object对象暴露给JavaScript
                | 在JavaScript中通过刚才暴露的name对象调用Android的方法
四.Web Service
        | SOAP(简单对象访问协议)
                | 必须的<Envelope.../>根元素
                | 可选的<Header.../>包含SOAP消息的头信息
                | 必须的<Body../>元素,包含所有的调用和响应信息
        | WSDL(Web Service 描述语言)   
                | WHAT部分:用于定义Web Service所提供的操作(或方法).由WSDL的<types.../>,<message.../>(交换方式)和<portType.../>元素定义(可包含<operation../>元素代表一个允许                        远程调用的操作)
                | HOW部分: 用于定义如何访问Web Service,包含数据格式详情和必要协议.
                | WHERE部分: 用于定义Web Service 位于何处,如何使用特定的网络地址(url)指定.该部分使用<service.../>定义   
                        | <binding../>子元素,会把绑定机制,服务访问协议和终端地址结合在一起
        | UDDI (统一描述,发现和整合协议)
                | 特点: 基于Web,  分布式
                | jar:ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies.jar
                        | 1 创建HttpTransportSE对象, 该对象用于调用WebService操作
                        | 2 创建SoapSerializationEnvelope对象
                        | 3 创建SoapObject对象,创建时需要传入Web Service的命名空间,Web Service方法名
                        | 4 如果有参数需要传给Web Service服务器端,调用SoapObject对象的addProperty(String name,Object value)方法设置参数
                        | 5 调用SoapSerializationEnvelope的setOutputSoapObject()方法或者直接对bodyOut属性赋值,将SoapObject对象设置为SoapSerializationEnvelope传出SOAP消息体
                        | 6 调用call()方法并以SoapSerializationEnvelope作为参数调用远程Web Service
                        | 7 调用完成后,访问SoapSerializationEnvelope对象的bodyIn属性,该属性返回一个SoapObject对象,该对象代表Web Service返回的消息
                        

                 

      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值