一.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返回的消息
| 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返回的消息