精华内容
下载资源
问答
  • Http调用Webservice

    2019-04-12 10:23:59
    提供一个最快解决问题的方案 首先下载SoapUI并安装( ... 安装完成是这个样子的: ...我使用的是一个天气服务接口( http://www.webxml.com.cn/webservices/wea...

    提供一个最快解决问题的方案

     

    首先下载SoapUI并安装( https://www.soapui.org/downloads/latest-release.html

     

    安装完成是这个样子的:

     

     

    然后New一个Project,就像这样:

     

     

     

    我使用的是一个天气服务接口( http://www.webxml.com.cn/webservices/weatherwebservice.asmx?wsdl

     

    创建成功后是这样的:

     

     

     

    上面会罗列出所有的接口,然后找到我们所需要调用的接口,接口会自动为我们生成一套http请求的模板:

     

     

     

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://WebXml.com.cn/">

       <soapenv:Header/>

       <soapenv:Body>

          <web:getSupportCity>

             <!--Optional:-->

             <web:byProvinceName>?</web:byProvinceName>

          </web:getSupportCity>

       </soapenv:Body>

    </soapenv:Envelope>

    这就是这个天气服务的getSupportCity方法,参数为只需要一个 byProvinceName;

     

    好了知道以上信息我们就祭出POSTMAN

     

     

    好啦,以上就是使用http调用Webservice的全部过程!

     

    展开全文
  • 主要介绍了http调用webservice操作httprequest、httpresponse示例,需要的朋友可以参考下
  • 以前调用webservice一般使用axis、axis2先生成java类后,直接引用,多方便。但是有的webservice接口非常的函数,生成的java类非常多,有没有一种非常简化的方法。 axis2有不生成类直接调用的方法,但是QName不容易...

        以前调用webservice一般使用axis、axis2先生成java类后,直接引用,多方便。但是有的webservice接口非常的函数,生成的java类非常多,有没有一种非常简化的方法。

         axis2有不生成类直接调用的方法,但是QName不容易找,每次查N久不到。有的反馈,使用CXF调用一样方便,但CXF还要使用maven下载jar,而这里是jdk自带的^_^.....。

        找到一个方便的方法,就是调用HttpURLConnection或HttpsURLConnection直接调用。先在soap查看接口,然后直接把数据传过来,可以使用postman测试。如果测试成功,正常就可以使用HttpURLConnection调用了。

    public static String HttpSendSoapPost(String strurl,String xml){
    		HttpURLConnection connection = null;
    		InputStream is = null;
    		BufferedReader br = null;
    		String result = null;// 返回结果字符串
    		OutputStream out = null;
    		
    		Date d1 = new Date();
    
    		try {
    		
    			// 创建远程url连接对象
    			URL url = new URL(strurl);
    			// 通过远程url连接对象打开一个连接,强转成httpURLConnection类
    			
    			connection = (HttpURLConnection) url.openConnection();
    			// 设置连接方式:GET,POST
    			connection.setRequestMethod("POST");
    
    			connection.setDoInput(true);
    			connection.setDoOutput(true);
    			
    			connection.setRequestProperty("Content-Type", "text/xml;charset=utf-8");
    			//这里必须要写,否则出错,根据自己的要求写,默认为空
    			connection.setRequestProperty("SOAPAction", "");
    			
    						
    			// 设置连接主机服务器的超时时间:15000毫秒
    			connection.setConnectTimeout(15000);
    			// 设置读取远程返回的数据时间:60000毫秒
    			connection.setReadTimeout(60000);
    
    			// 发送请求
    			connection.connect();
    			out = connection.getOutputStream(); // 获取输出流对象
    			connection.getOutputStream().write(xml.getBytes("UTF-8")); // 将要提交服务器的SOAP请求字符流写入输出流
    			out.flush();
    			out.close();
    
    			System.out.println(connection.getResponseCode());
    
    			// 通过connection连接,获取输入流
    			if (connection.getResponseCode() == 200) {
    				is = connection.getInputStream();
    				// 封装输入流is,并指定字符集
    				br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    				// 存放数据
    				StringBuffer sbf = new StringBuffer();
    				String temp = null;
    				while ((temp = br.readLine()) != null) {
    					sbf.append(temp);
    					sbf.append("\r\n");
    				}
    				result = sbf.toString();
    			}
    		} catch (MalformedURLException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			// 关闭资源
    			if (null != br) {
    				try {
    					br.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    
    			if (null != is) {
    				try {
    					is.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    
    			connection.disconnect();// 关闭远程连接
    
    		}
    
    		Date d2 = new Date();
    		System.out.println(d2.getTime() - d1.getTime());
    		System.out.println("****** END ********");		
    		//System.out.println();
    		return result;
    	}

    这种调用webservice个人使用起来非常方便,这个不仅可以在原生的java开发使用,还可以在domino调用。

    展开全文
  • oracle plsql 通过utl_http调用 webservice,包括webservice服务端的源码,以及pro的客户端代码。已测试通过。
  • * 调用webservice 接口 * * @param method * 调用方法名 * @param params * 接口传入参数 * @return */ public String invoke(String method, String... params) { try { if (StringUtils....

    概述

      Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的交互操作的应用程序。

      Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。

      本文将介绍其 CXF、HTTP 及 sapjco3 方式调用。

    CXF 动态调用

    本类为 CXF 动态方式调用,无需生成客户端代码。
    LoginInterceptor 类为用户验证拦截器。

    public class CxfUtils {
    
    	private static String _wsdlUrl;
    	private static String _nameSpace;
    
    	
    	 /*private static String username = "test"; 
    	 private static String password = "123456";*/
    	 
    
    	public static Logger logger = Logger.getLogger(CxfUtils.class);
    
    	public CxfUtils(String wsdlUrl, String nameSpace) {
    		_wsdlUrl = wsdlUrl;
    		_nameSpace = nameSpace;
    	}
    
    	/**
    	 * 调用webservice 接口
    	 * 
    	 * @param method
    	 *            调用方法名
    	 * @param params
    	 *            接口传入参数
    	 * @return
    	 */
    	public String invoke(String method, String... params) {
    
    		try {
    
    			if (StringUtils.isEmpty(method)) {
    				return null;
    			}
    
    			JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
    			QName qName = new QName(_nameSpace, method);
    
    			org.apache.cxf.endpoint.Client client = dcf.createClient(_wsdlUrl);
    			// 用户验证,注:能访问到接口内容,访问方法使用验证
    			// client.getOutInterceptors().add(new LoginInterceptor(username,password));
    
    			logger.debug("接口连接成功!");
    
    			HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); // 策略
    			httpClientPolicy.setConnectionTimeout(36000); // 连接超时
    			httpClientPolicy.setAllowChunking(false);
    			httpClientPolicy.setReceiveTimeout(10000); // 接收超时
    
    			HTTPConduit http = (HTTPConduit) client.getConduit();
    			http.setClient(httpClientPolicy);
    
    			Object[] resobj = client.invoke(qName, params);
    
    			logger.debug("数据发送成功!");
    			if (resobj.length <= 0 || resobj == null) {
    				return null;
    			}
    
    			return resobj[0].toString();
    
    		} catch (Exception e) {
    
    			e.printStackTrace();
    
    		}
    
    		return null;
    	}
    
    }
    
    // 用户登录验证
    class LoginInterceptor extends AbstractPhaseInterceptor<SoapMessage> {
    
    	private String username;
    	private String password;
    
    	public static Logger logger = Logger.getLogger(LoginInterceptor.class);
    
    	public LoginInterceptor(String username, String password) {
    
    		// 设置在发送请求前阶段进行拦截
    		super(Phase.PREPARE_SEND);
    		this.username = username;
    		this.password = password;
    	}
    
    	@Override
    	public void handleMessage(SoapMessage soapMessage) throws Fault {
    
    		try {
    			List<Header> headers = soapMessage.getHeaders();
    			Document doc = DOMUtils.createDocument();
    			Element auth = doc.createElementNS("http://www.w3.org/2001/XMLSchema", "SecurityHeader");
    			Element UserName = doc.createElement("username");
    			Element UserPass = doc.createElement("password");
    
    			UserName.setTextContent(username);
    			UserPass.setTextContent(password);
    
    			auth.appendChild(UserName);
    			auth.appendChild(UserPass);
    
    			headers.add(0, new Header(new QName("SecurityHeader"), auth));
    
    			logger.debug("用户名密码验证发送!");
    		} catch (DOMException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			logger.debug("用户名密码验证失败!");
    		}
    
    	}
    
    }
    
    

    HTTP 方式调用

    本类使用的 HttpClient 方式,原生的 HTTP URL 方式在示例代码包中。

    public class HTTPClientUtils {
    	
    	/**
    	 * 
    	 * @param uri : 接口地址
    	 * @param content : 传输参数 XML
    	 * @param nameSpace :接口 nameSpace
    	 * @param method: 接口方法
    	 * @return
    	 */
    	public static String doHttpPostByHttpClient(String uri, String content, String nameSpace, String method) {
    
    		try {
    			// HttpClient发送SOAP请求
    			int timeout = 10000;
    			HttpClient client = new HttpClient();
    			// 如果需要用户名密码验证;不需要验证登录则不需要以下4行
    			/*
    			 * String username = "test"; String password = "1234567";
    			 * UsernamePasswordCredentials creds = new UsernamePasswordCredentials(username,
    			 * password); client.getState().setCredentials(AuthScope.ANY, creds);
    			 */
    
    			PostMethod postMethod = new PostMethod(uri);
    			// 设置连接超时
    			client.getHttpConnectionManager().getParams().setConnectionTimeout(timeout);
    			// 设置读取时间超时
    			client.getHttpConnectionManager().getParams().setSoTimeout(timeout);
    			// 然后把Soap请求数据添加到PostMethod中
    			RequestEntity requestEntity = new StringRequestEntity(content, "text/xml", "UTF-8");
    
    			// 设置请求头部,否则可能会报 “no SOAPAction header” 的错误
    			postMethod.setRequestHeader("SOAPAction", nameSpace + method);
    			// 设置请求体
    			postMethod.setRequestEntity(requestEntity);
    			int status = client.executeMethod(postMethod);
    
    			if (status == 200) {// 成功
    				InputStream is = postMethod.getResponseBodyAsStream();
    				// 获取请求结果字符串
    				String result = IOUtils.toString(is);
    
    				return result;
    			} else {
    				System.out.println("错误代码:" + status + ":" + postMethod.getResponseBodyAsString());
    			}
    			
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    
    		return null;
    	}
    

    sapjco 调用

       注:此方式必须需要 sapjco3.dll 和 sapjco3.jar 工具包,sap 接口类方法与参数都可以在代码中操作。

    获取 sapjco 连接

    public class SapConnect {
    
    	private static Logger log = Logger.getLogger(SapConnect.class); // 初始化日志对象
    
    	public static final String ABAP_AS_POOLED = "ECD";//连接池名;
    
    	static {
    		Properties connectProperties = new Properties();
    		
    		//详细信息咨询接口开发人员
    		connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "61.147.124.120");// 服务器
    		connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "00"); // 系统编号
    		connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "120"); // SAP集团
    		connectProperties.setProperty(DestinationDataProvider.JCO_USER, "wms"); // SAP用户名
    		connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "1234567"); // 密码
    		connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "zh"); // 登录语言
    		connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3"); // 最大连接数
    		connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10"); // 最大连接线程
    
    		createDataFile(ABAP_AS_POOLED, "jcoDestination", connectProperties);
    	}
    
    	/**
    	 * 创建SAP接口属性文件。
    	 * 
    	 * @param name
    	 *            ABAP管道名称
    	 * @param suffix
    	 *            属性文件后缀
    	 * @param properties
    	 *            属性文件内容
    	 */
    	private static void createDataFile(String name, String suffix, Properties properties) {
    		File cfg = new File(name + "." + suffix);
    		if (cfg.exists()) {
    			cfg.deleteOnExit();
    		}
    		try {
    			FileOutputStream fos = new FileOutputStream(cfg, false);
    			properties.store(fos, "for tests only !");
    			fos.close();
    		} catch (Exception e) {
    			log.error("Create Data file fault, error msg: " + e.toString());
    			throw new RuntimeException("Unable to create the destination file " + cfg.getName(), e);
    		}
    	}
    
    	/**
    	 * 获取SAP连接
    	 * 
    	 * @return SAP连接对象
    	 */
    	public static JCoDestination connect() {
    		JCoDestination destination = null;
    		try {
    			destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED);
    		} catch (JCoException e) {
    			log.error("Connect SAP fault, error msg: " + e.toString());
    		}
    		return destination;
    	}
    

    使用 sapjco 连接操作接口内容

    public class SapTest {
    
    	/**
    	 * 明确接口使用或为自主开发的时,使用该方式调用接口;
    	 * 此方式可对接口中的方法和参数获取与赋值,进行对象化操作
    	 * @param args
    	 * @throws JCoException
    	 */
    	public static void main(String[] args) throws JCoException {
    		
    		String bapiFunctionName = "qqCheckOnline";
    		
    		//连接SAP,获取一个连接对象
            JCoDestination destination = SapConnect.connect();
            //将该函数的结构打印出来
            JCoRepository repository = destination.getRepository();                 //JCoFunction是一个接口,代表SAP系统的函数库
            JCoFunction function = repository.getFunction(bapiFunctionName);     // 从这个函数模板获得该SAP函数的对象        
            JCoParameterList input = function.getImportParameterList();         // 获得函数的import参数列表
            input.setValue("参数key", "参数value");
            function.execute(destination);
            JCoParameterList output = function.getExportParameterList();         // 获得Export变量列表。
            int value = output.getInt("qqCheckOnline");
            System.out.println(value);   
            
    	}
    }
    

    说明

       webservice 客户端调用方式很多中 ,本文介绍的都是不需要生成客户端代码,axis2 生成代码方式调用开发中不利于维护,请根据自己所需要调用的接口的类型分析出便于开发的调用方式,希望本文能够给大家一个帮助。

    使用 QQ 状态接口测试实例,注:已测试成功。代码可直接使用运行。

    /**
    	 * Demo 示例为 qq 在线状态
    	 * Cxf 模式为动态调用,使用静态调用和代码生成则不需要本类
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		
    		//最简单的接口 url 用户验证:拼接&sap-user=username&sap-password=password
    		String wsdlUrl = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl";
    		String nameSpace = "http://WebXml.com.cn/";
    		String method = "qqCheckOnline";
    		
    		//通过 Cxf 方式动态调用
    		CxfUtils cxfutils = new CxfUtils(wsdlUrl, nameSpace);
    		String restr = cxfutils.invoke("qqCheckOnline","1963424456");
    		logger.debug(restr);
    		
    		//通过 soap ui 解析后的 xml 参数串
    		String xml = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"http://WebXml.com.cn/\">\r\n" + 
    				"   <soapenv:Header/>\r\n" + 
    				"   <soapenv:Body>\r\n" + 
    				"      <web:qqCheckOnline>\r\n" + 
    				"         <!--Optional:-->\r\n" + 
    				"         <web:qqCode>78123617</web:qqCode>\r\n" + 
    				"      </web:qqCheckOnline>\r\n" + 
    				"   </soapenv:Body>\r\n" + 
    				"</soapenv:Envelope>";
    		
    		//原生 HTTP 方式 url 请求调用 
    		HTTPUtils.send(wsdlUrl,xml,nameSpace,method);
    		
    		//使用插件 HTTPClient 调用
    		HTTPClientUtils.doHttpPostByHttpClient(wsdlUrl,xml,nameSpace,method);
    	}
    

    文中所需 jar 包与代码地址:

    链接:https://pan.baidu.com/s/1SZ4p_eawFVZrGzJllNVl5A .
    提取码:793k

    展开全文
  • http调用webService接口

    2020-12-02 14:56:00
    /** @author :xiaowang @description:TODO ...@param url: 服务接口地址"http://192.168.0.120:8222/HelloWorld?wsdl" @param isClass:接口类名 @param isMethod: 接口方法名 @param sendSoapString

    * java http调用webService接口*

    1.这里以天气接口为例

    /**
     * @author :xiaowang
     * @description:TODO
     * @date :2020/12/2 14:03
     */
    public class HttpWebServiceUtils {
        /*
         * http远程访问SOAP协议接口
         * @param url: 服务接口地址"http://192.168.0.120:8222/HelloWorld?wsdl"
         * @param isClass:接口类名
         * @param isMethod: 接口方法名
         * @param sendSoapString: soap协议xml格式访问接口
         * @return  soap协议xml格式
         * @备注:有四种请求头格式1、SOAP 1.1; 2、SOAP 1.2 ; 3、HTTP GET; 4、HTTP POST
         * 参考---》http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getWeatherbyCityName
         */
        public static String sendWebService(String url,String isClass,String isMethod,StringBuffer paramsXml,String token) throws Exception {
            //传过来的xml格式
            String xml = paramsXml.toString();
            if (xml==null){
                return "传入xml参数不能为空!";
            }
            URL sopul = new URL(url);
            //获取连接
            URLConnection connention = sopul.openConnection();
            //缓存设置
            connention.setUseCaches(false);
            //设置输入输出,新创建的connection默认是没有读写权限的
            connention.setDoInput(true);
            connention.setDoOutput(true);
            //设置请求头
            connention.setRequestProperty("Content-Length",xml.length()+"");
            //这里设置请求头类型为xml,传统http请求的是超文本传输格式text/html
            connention.setRequestProperty("Content-Type","text/xml; charset=utf-8");
            //调用的类名,方法名
            connention.setRequestProperty(isClass,isMethod);
            //这里如果携带token设置token,没传则不设置
            if (token!=null){
                connention.setRequestProperty("Authorization","Bearer "+token);
            }
            OutputStream os = connention.getOutputStream();
            OutputStreamWriter osw = new OutputStreamWriter(os,"utf-8");
            //写入传过来的xml文件格式
            osw.write(xml);
            //释放资源
            osw.flush();
            osw.close();
            //下面获取webservice返回过来的流
            InputStream is = connention.getInputStream();
            if (is!=null){
                byte[] bytes = new byte[0];
                bytes=new byte[is.available()];
                is.read(bytes);
                //将字节数组转换为字符串输出
                String outXml = new String(bytes,"UTF-8");
                return outXml;
            }
            return null;
        }
    

    2.方法测试

        public static void main(String[] args) {
            String url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx";
            //构造xml参数
            StringBuffer sb = new StringBuffer();
            sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>")
            .append("<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">")
                    .append("<soap:Body>")
                    .append("<getWeatherbyCityName xmlns=\"http://WebXml.com.cn/\">")
                    .append("<theCityName>")
                    .append("苏州")
                    .append("</theCityName>")
                    .append("</getWeatherbyCityName>")
                    .append("</soap:Body>")
                    .append("</soap:Envelope>");
            try {
                String outXml = sendWebService(url, "getWeatherbyCityName", "theCityName", sb, "");
                System.out.println(outXml);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    

    3.返回结果

    D:\develop\jdk1.8\bin\java.exe "-javaagent:D:\develop\IDEA2018\IntelliJ IDEA 2018.2.2\lib\idea_rt.jar=62386:D:\develop\IDEA2018\IntelliJ IDEA 2018.2.2\bin" -Dfile.encoding=UTF-8 -classpath D:\develop\jdk1.8\jre\lib\charsets.jar;D:\develop\jdk1.8\jre\lib\deploy.jar;D:\develop\jdk1.8\jre\lib\ext\access-bridge-64.jar;D:\develop\jdk1.8\jre\lib\ext\cldrdata.jar;D:\develop\jdk1.8\jre\lib\ext\dnsns.jar;D:\develop\jdk1.8\jre\lib\ext\jaccess.jar;D:\develop\jdk1.8\jre\lib\ext\jfxrt.jar;D:\develop\jdk1.8\jre\lib\ext\localedata.jar;D:\develop\jdk1.8\jre\lib\ext\nashorn.jar;D:\develop\jdk1.8\jre\lib\ext\sunec.jar;D:\develop\jdk1.8\jre\lib\ext\sunjce_provider.jar;D:\develop\jdk1.8\jre\lib\ext\sunmscapi.jar;D:\develop\jdk1.8\jre\lib\ext\sunpkcs11.jar;D:\develop\jdk1.8\jre\lib\ext\zipfs.jar;D:\develop\jdk1.8\jre\lib\javaws.jar;D:\develop\jdk1.8\jre\lib\jce.jar;D:\develop\jdk1.8\jre\lib\jfr.jar;D:\develop\jdk1.8\jre\lib\jfxswt.jar;D:\develop\jdk1.8\jre\lib\jsse.jar;D:\develop\jdk1.8\jre\lib\management-agent.jar;D:\develop\jdk1.8\jre\lib\plugin.jar;D:\develop\jdk1.8\jre\lib\resources.jar;D:\develop\jdk1.8\jre\lib\rt.jar;D:\Code\webservice\soup\out\production\soup com.jeeplus.util.HttpWebServiceUtils
    <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><getWeatherbyCityNameResponse xmlns="http://WebXml.com.cn/"><getWeatherbyCityNameResult><string>江苏</string><string>苏州</string><string>58357</string><string>58357.jpg</string><string>2020/12/2 14:48:04</string><string>6℃/13℃</string><string>12月2日 阴</string><string>北风3-4级</string><string>2.gif</string><string>2.gif</string><string>今日天气实况:气温:11℃;风向/风力:北风 2级;湿度:75%;紫外线强度:最弱。</string><string>中国人民保险中暑指数:无中暑风险,天气舒适,对易中暑人群来说非常友善。
    健臻·血糖指数:不易波动,天气条件好,血糖不易波动,可适时进行户外锻炼。
    穿衣指数:较冷,建议着厚外套加毛衣等服装。
    洗车指数:较不宜,风力较大,洗车后会蒙上灰尘。
    紫外线指数:最弱,辐射弱,涂擦SPF8-12防晒护肤品。
    </string><string>3℃/12℃</string><string>12月3日 多云</string><string>北风4-5级</string><string>1.gif</string><string>1.gif</string><string>3℃/10℃</string><string>12月4日 晴</string><string>北风3-4级</string><string>0.gif</string><string>0.gif</string><string>苏州位于长江下游,太湖之滨,鱼米之乡,面积8488平方公里。下辖张家港,常熟,太仓,昆山,吴县,吴江六县市,人口575万。其为亚热带季风气候,四季分明,全年平均气温15-17度,1月最低气温-9.4度,7、8月份最高气温达38.6度;全年平均降水量偏高,近1076.2毫米,无霜期在230天左右。苏州全市地势低平,平原占总面积的54%,平均海拔4米左右,东南部地势低洼,西南部多小山丘。吴县穹窿山主峰高351.7米,为全市最高点。境内河流纵横,湖泊众多,京杭运河贯通南北,望虞河、娄江、太浦河等连接东西,阳澄湖、昆承湖、淀山湖等散布其间,太湖水面90%左右在苏州市境内,全市水面占总面积的42.5%,是著名的江南水乡。苏州古城内现有河道35公里、桥梁168座,被誉为"东方威尼斯"。苏州园林甲天下,已被列入世界文化遗产名录,在中国四大名园中,苏州就占有两席(拙政园、留园)。“吴中第一名胜”虎丘,2500多年的历史形成的深厚的文化积淀,成为游客来苏州旅游的必游之地。而唐朝诗人张继的一首《枫桥夜泊》,使古今游客都要来枫桥,闻寒山寺的钟声。景观:苏州,拙政园,网师园,狮子林,留园,沧浪亭,怡园枫桥,寒山寺</string></getWeatherbyCityNameResult></getWeatherbyCityNameResponse></soap:Body></soap:Envelope>
    
    Process finished with exit code 0
    
    
    展开全文
  • 进入正题 1、由于用的是Maven管理jar包,先引入相关依赖 org.apache.httpcomponents httpclient org.apache.httpcomponents httpcore org.apache.httpcomponents httpmime  2、封装HTTP调用的工具类 两个...
  • 使用http调用webservice-wsdl服务

    千次阅读 2020-06-08 19:30:33
    工作对接需要,对webservice了解不深,知道wsdl地址,就下载了Soap UI工具。大家自行下载,网上比较多。 Soap UI工具使用起来也简单,直接把wsdl地址粘贴进去,就知道有什么方法了,就可以测试了。 这里简单说下...
  • 错误消息: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv=...xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3...
  • TIdHTTP *http = new TIdHTTP(NULL); TStringList *formData = new TStringList(); try{ IdAntiFreeze1->OnlyWhenIdle = false; formData->Add("<?xml version=\"1.0\" encoding=\"utf-8\"?>\<...
  • kettle 本身提供web服务查询组件可以调用webservice,但是对多版本webservice的支持不太理想 由于 webservice本身就是 http+xml 实现的,所以猜想可以通过http + xml 报文实现 1.soapUi调用webservice接口,测试...
  • http方式调用webservice

    千次阅读 2016-03-24 10:01:42
    webservice 通过http 访问 ... * 通过Http Post调用webservice服务 * * @author zhengyong * */ public class CommonWebServiceClient { private static Logger logger = LoggerFactory.getLogger(Comm
  • 应用URLConnection调用webservice与应用ajax调用webservice的重要的差别就在于前者是应用java语言来构造http请求, 而后者则是应用js语言来构造http请求。这两种方法所实现的功能其实是一样的,只是实现的情势不同...
  • 之前调用 WebService 都是直接添加服务引用,然后调用 WebService 方法的,最近发现还可以使用 Http 请求调用 WebService。这里还想说一句,还是 web api 的调用简单。 WebService 服务端代码: public class ...
  • 使用http调用webservice协议 使用http请求来调用webservice协议,首先是要先拼接soap格式的请求报文 拼接soap请求报文 public String jsonToXml(JsonObject json){ /** *其中attributes是一个入参的数组,里面...
  • 原文:C# 使用 HttpPost 请求调用 WebService之前调用 WebService 都是直接添加服务引用,然后调用 WebService 方法的,最近发现还可以使用 Http 请求调用 WebService。这里还想说一句,还是 web api 的调用简单。 ...
  • 因为 WebService 调用也是一种特殊的的 HTTP 调用HTTP XML 格式的 RequestBody 符合 SOAP 规范的 HTTP POST 请求),自然也可以要求添加 HTTP Header。 示例 本文针对使用 Jax 调用 WebService 如何添加 Http ...
  • 转自红黑联盟,原址... 三:同步调用WebService  四:异步调用WebService  一:同步调用  一个同步操作会阻塞整个当前的进程,直到这个操作完成才能执行下一段代码   二:异步调
  • C# 使用HttpPost调用WebService 原文 public class WebServiceDemo : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] ...
  • Http方式调用WebService

    千次阅读 2019-07-23 10:10:29
    以手机号码归属地为例:...1. 在 src 下新建调用参数模板 mobileCodeWS.template <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http:/...
  • 一、Webservice调用的三种方式:  Webservice调用1:浏览器中输入以下URL,然后再返回的页面输入参数,提交实现调用  http://localhost/WebService/MyService.asmx?op=MyAction  Webservice调用2:html中通过表单...
  • 后台http get 方式调用webservice

    千次阅读 2018-09-22 18:34:45
    定义http get 方式调用webservice的某个方法 /// <summary> /// http get 方式调用webservice 的方法 /// </summary> public static XmlDocument Test2_QueryGetWebService(String URL, String ...
  • 定义http post 调用webservice的某个方法 /// <summary> /// http Post调用 WebService /// </summary> public static XmlDocument Test1_QueryPostWebService(String URL, S...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,882
精华内容 2,752
关键字:

http调用webservice