webservice是基于soap协议的,在android端可以用okhttp建立连接吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webservice是基于soap协议的,在android端可以用okhttp建立连接吗相关的知识,希望对你有一定的参考价值。

参考技术A 调用几主要:
1.创建HttpTransportSE传输象:HttpTransportSE ht = new HttpTransportSE(SERVICE_URL); SERVICE_URLwebservice提供服务url
2.使用SOAP1.1协议创建Envelop象:SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 设置SOAP协议版本号根据服务端WebService版本号设置
3.实例化SoapObject象:SoapObject soapObject = new SoapObject(SERVICE_NAMESPACE, methodName); 第参数表示WebService命名空间WSDL文档找WebService命名空间第二参数表示要调用WebService名
4.设置调用参数值没参数省略:例soapObject.addProperty("theCityCode", cityName);
5.记设置bodyout属性 envelope.bodyOut = soapObject;
6.调用webservice:ht.call(SERVICE_NAMESPACE+methodName, envelope);
7.获取服务器响应返SOAP消息:
SoapObject result = (SoapObject) envelope.bodyIn;
SoapObject detail = (SoapObject) result.getProperty(methodName+"Result");

大白的webservice

1.什么是web服务:

   web服务是一种可以用来解决跨网络应用集成问题的开发模式,这种模式为实现“软件即服务”提供了技术保障。

2.web服务的三个核心  (SOAP,WSDL,UDDI)

2.1  SOAP(简单对象访问协议)

  SOAP(Simple Object Access Protocol,简单对象访问协议)是一个基于xml的协议,用于在分步的应用程序都可以识别。另外,SOAP本身没有定义任何程序语言,这使得SOAP能够以消息的形式传递到各种远程系统中。

  SOAP所使用的传输协议,可以是HTTP,SMTP,POP3,JMS。

  SOAP包括了4部分:

   01.“SOAP封装(Envelope)”:

定义一个描述信息描述的内容是什么,是谁发送的,谁应当处理他,以及如何处理他们的框架。

  02.“SOAP编码规则”:

 用于表示应用程序需要使用的数据类型的实例。

  03.“SOAP RPC":

 表示远程过程中调用和应答的协定。

  04.“SOPA绑定”:

  使用底层协议交换信息。

2.2   WSDL(web服务描述语言)

  WSDL(Web Service Description Language,web服务描述语言)是一个XML文档,他以一种和具体语言无关的抽象方式定义了给定web服务收发者的有关操作和消息。

2.3   UDDI(统一描述发现和集成协议)

UDDI(Universal Description Discovery and Integration,统一描述发现和集成协议)是一个规范,定义了与web服务相关的信息的发布,发现和管理。

3.JAX-WS

   JSX—WS(Java API for XML Web Service)。他是用来简化使用java构造web服务和web服务客户端的工作的技术。

3.1使用JAX-WS发布服务

案例:HelloWord:

01.定义服务类以及方法

技术分享
package cn.service2;

 

import javax.jws.WebService;

import javax.xml.ws.Endpoint;

 

import cn.clien.test.HellowordClicenTest;

/**

*@javax.jws.WebService注解,标识一个java类或一个接口作为一个服务,一旦被标注@WebService,他就不是一个普通的

*接口,他被称作服务端点接口(Service Endpoint Interface)

 */

@WebService

public class HelloWord {

/**

 * 打招呼的方法

 * @param name

 * @return

 */

  public String say(String name){

  System.out.println("欢迎"+name);

  return  "你好:"+name;

  }

  

public static void main(String[] args) {

   String address="http://localhost:50000/HelloWord";

   //发布服务

   Endpoint.publish(address, new HelloWord());

   System.out.println("启动服务成功.....");

  }

}
技术分享

 

02.启动测试

技术分享

03.在浏览器中测试

技术分享

技术分享

到了这一步证明发布成功了可以进行客户端的测试了。

3.1使用JAX-WS调用服务

01.打开cmd命令:

  ------》cd\\到c盘根目录------》wsimport -s . http://localhost:50000/HelloWord?wsdl

02.会在c盘根目录下生成文件夹里面有有java类和编译好的字节码文件

技术分享

03.把java类复制到工程中,并且创建测试类

技术分享
package cn.clien.test;

 

import javax.xml.ws.Endpoint;

 

import cn.service1.HelloWord;

import cn.service1.HelloWordService;

 

public class HellowordClicenTest {

   public static void main(String[] args) {

   HelloWordService hws=new HelloWordService();

   HelloWord hw= hws.getHelloWordPort();

   System.out.println(hw.say("嘿嘿"));

   }

}
技术分享

 

04.运行效果图:

服务端:

技术分享

 

客户端:

技术分享

 

3.3使用web Service Explorer来调用服务

在MyEclipse中找到如图所示的图标

技术分享

打开会出现如图所示的界面,它默认选择的是UDDI,在这里我们选择WSDL

技术分享

技术分享

技术分享

当点击go

服务端:

技术分享

客户端:

技术分享

以上是关于webservice是基于soap协议的,在android端可以用okhttp建立连接吗的主要内容,如果未能解决你的问题,请参考以下文章

SOAP是啥?WEBService是啥?

java webservice

在 PHP 中使用 SOAP 协议调用 Web服务(WebService)

WebService

WebService

webservice是啥