HTTP协议是在客户端-服务器计算模型中用作请求-响应协议。一个网页浏览器,例如,可
能是客户端,并在计算机上运行的应用程序托管一个网站可能是服务器。客户端向服务器提交
HTTP 请求消息。服务器,该服务器提供的资源,如HTML文件和其他内容,或代表客户机的
执行其它功能,返回一个响应消息给客户端。响应包含有关请求的完成状态信息,还可能在其
消息正文中包含请求的内容。
Web浏览器是用户代理(UA)的示例。其他类型的用户代理包括搜索提供商,语音浏览器,
移动应用程序以及访问,使用或显示网络内容的其他软件所使用的索引软件。
HTTP旨在允许中间网络元素改进或启用客户端和服务器之间的通信。高流量网站通常受益于
代表上游服务器提供内容的Web缓存服务器,以缩短响应时间。Web浏览器缓存先前访问的
Web资源,并在可能的情况下重用它们以减少网络流量。通过使用外部服务器中继消息,专用
网络边界处的HTTP 代理服务器可以在没有全局可路由地址的情况下促进客户端的通信。
HTTP是在Internet协议套件框架内设计的应用程序层协议。它的定义假定底层和可靠传输层协
议和传输控制协议(TCP)是常用的。但是,HTTP可以适用于使用不可靠的协议,例如用户数
据报协议(UDP),例如在HTTPU和简单服务发现协议(SSDP)中。
扩展资料:
与HTTP协议非常相似的一个协议HTTPS协议
安全超文本传输协议(HTTPS)是超文本传输协议(HTTP)的扩展。它用于通过计算机网络
进行安全通信,并在因特网上广泛使用。在HTTPS中,通信协议使用传输层安全性(TLS)或
以前的安全套接字层(SSL)进行加密。因此,该协议通常也称为HTTPoverTLS,或HTTP
overSSL。
HTTPS的主要动机是对所访问网站的身份验证以及在传输过程中保护所交换数据的隐私和完整
性。它可以防止中间人攻击。客户端和服务器之间的通信的双向加密防止了对通信的窃听和篡
改。在实践中,这提供了一个合理的保证,即一个人在不受攻击者干扰的情况下进行通信,而
不是冒名顶替者。
在异步请求时 Callback 等待服务器返回数据,此时 Activity 被用户关闭, Listener 在 Activity 的 onDestroy 方法被回收,待服务器返回数据时, Callback 回调给监听器 Listener 。 Listener 调用 onComplete() 方法回调给 Activity 作数据处理,由于此时 Listener 为空,所以调用 listener.onComplete() 方法报错。
在异步请求 Callback 回调给 Listener , Listener 调用方法前判空即可(由于此时 Activity 已经销毁,所以 Listener 为空,直接 return 是可行的)。
用修改后的 Http 框架导入项目,实测问题没有再发生。
多留意弱网情况下的测试。
本Guide利用Eclipse及Ant建立简单Web Service演示Web Service基本发程:1.系统条件:
Eclipse Java EE IDE for Web Developers
Java SE 6
Windows XP
2.基本环境搭建:
1)Java SE6 JDK安装:载Java SE6 JDK双击安装默认选项进行安装即
2)Eclipse安装与配置:
安装直接解压
配置处两点Window>Preferences>Java>Installed JREs确保设置:
安装路径能略同
Window>Preferences>Java>Compiler 确保设置:
3.建立Server端工程相关包与类:
创建Java Project命名wsServerHelloWorld:
项目建立包:org.gnuhpc.wsServer
包边建立类:SayHello
SayHello.java文件输入代码:
package org.gnuhpc.wsServer
import javax.jws.WebService
@WebService
public class SayHello {
private static final String SALUTATION = "Hello"
public String getGreeting(String name) {
return SALUTATION + " " + name
}
}
其注意@WebService 称作annotation或者metadataJava SE 5Web Services Metadata Specification引入Java SE 6于Web Services规范升级及JAX-WS(Java API for XML Web Services)2.0规范些升级使我Web Services创建调用变更加容易使用些新功能我仅仅使用简单Annotations注释Java类创建Web Services发者其类前用该annotations指定类告诉runtime engineWeb Service式操作使能该类annotations产布署Web ServiceWSDL映射annotationsJava源代码与代表Web ServiceWSDL元素连接起
4.使用Ant产Server端代码:
首先项目新建文件:build.xml使用OpenWith>AntEditor打输入脚本代码:
<arg line="-cp ./bin -keep -s ./src -d ./bin
org.gnuhpc.wsServer.SayHello"/>
default指定默认执行Targetwsgen,wsgen创建能够使用WebService类所用于WebService发布源代码文件经编译二进制类文件WSDL符合规范该类WebService
Target名称wsgen具体执行命令参数:
-cp 类路径
-keep产java文件
-s 产源文件放哪
-d 产输问价放哪
使用Ant Build选项运行:
功执行提示我刷新Project
我Project区域看结:
5.布Web Service
org.gnuhpc.wsServer建立类RunService:
package org.gnuhpc.wsServer
import javax.xml.ws.Endpoint
public class RunService {
/**
*@paramargs
*/
public static void main(String[] args) {
System.out.println("SayHello Web Service started.")
Endpoint.publish("" ,
new SayHello())
}
}
运行Run As>Java Application我结说明web serviceServer端已经启
6.查看WSDL:
Window>Show View>Other>General>Internal Web Browser其输入:?wsdl
看看底WSDL都记录哪些信息看完停止该Server
7.监测Server
我创建完Server用Eclipse Web Services Explorer监测Server
Window>Open Perspective>Other >JavaEE
打Eclipse Web Services Explorer
点击右角WSDL Page按钮:
单击WSDL MainURL输入:?wsdl 按Go按钮现视图:
我触发Web Service操作:点击getGreetings添加参数比gnuhpc点击Go按钮:
8.创建Client端 工程相关包与类:
创建Java Project命名wsClientHelloWorld项目建立包:org.gnuhpc.wsClient
9.使用Ant产Client代码框架:
编写Web service使用工具利用WSDL进行调用客户端桩;或者使用底层API手编写Web service前者便者灵现我通前者做说明:
新建文件build.xml
New>File>build.xml
<arg line="-keep -s ./src -p org.gnuhpc.wsClient
-d ./bin ?wsdl"/>
注意:wsgen 支持 Java class 创建 Web serviceswsimport 支持 WSDL 创建 Web services别应于 JAX-RPC 式 Java2WSDL WSDL2Java要根据发布WSDL进行创建要先运行RunServer原
运行ServerRunService : Run As>Java Application>
运行该Ant脚本产Client代码:Run As>Ant Build
运行功提示:
代码:
步读取WSDL并客户端桩些桩我代码所用Java类接口些桩给服务器端功能提供客户端接口例我服务器提供Maths服务该服务带叫做add我客户端代码调用桩桩实现该使用参数封装Java调用变Webservice请求请求基于HTTP发送给服务器且使用SOAP作RPC协议监听服务器接收该SOAP消息(十八九)其转换服务器处调用
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)