调用网络接口
用eclipse,先调用自己写的。
首先创建一个Dynamic Web Project
之后创建包结构以及添加一个计算器类,代码如下。
package com.niit;
public class Calculator {
public double add(double x, double y){
return x+y;
}
public double sub(double x , double y ){
return x - y;
}
public double mul(double x, double y){
return x * y;
}
public double div(double x , double y){
return x/y;
}
}
之后继续new一个WebService
然后选择正确的类,填入Service implementation里面
ServiceProject选择正确
之后出现下面图片
之后开启服务
之后在wsdl里面找到location,复制下来,后面创建Client需要使用后缀为wsdl的url。
之后创建Client,客户端。 就创建一个Java Project就行了。
之后new ,选择里面的Web Service Client,然后点击Browse选择服务,在里面贴入地址,然后加上?wsdl
然后Client Project 选择刚刚创建的项目,
之后默认选择就行,到此创建成功,接下来就是调用了。
结构如下。
之后开始调用。
创建一个方法,写入如下代码。
package com.niit;
import java.rmi.RemoteException;
import org.junit.Test;
import com.niit.Calculator;
public class WebTest {
@Test
public void test1() throws RemoteException{
Calculator cal = new CalculatorProxy();
double a = cal.add(3, 3);
System.out.println(a);
}
}
运行之后就行了。
之后调用网络上的。先自己搜索想用的接口,我用的天气预报的。
里面的方法和返回类型等等在EndPoint里面,自己看就行了。
继续创建WebServiceClient, WSDL URL里面填写上图的WSDL,之后操作如上。
生成相关的类。然后编写测试类。主要是注意方法名称等等,返回类型等等。
@Test
public void test2() throws RemoteException{
WeatherWSSoap we = new WeatherWSSoapProxy();
String [] arr = we.getWeather("重庆",null);
for(String mess : arr){
System.out.println(mess);
}
}
之后就可以看到方法成功执行。到此就完成了基本的两种调用。