`
fengzhizi715
  • 浏览: 161613 次
  • 性别: Icon_minigender_1
  • 来自: 上海 苏州
社区版块
存档分类
最新评论

用HTTP GET调用web service(Java、Groovy两个版本)

阅读更多
下面的网址提供了国内飞机航班时刻表 WEB 服务
http://webservice.webxml.com.cn/webservices/DomesticAirline.asmx

wsdl如下:
http://webservice.webxml.com.cn/webservices/DomesticAirline.asmx?wsdl

调用web service可以采用很多方式 比如axis2、xfire、cxf都可以根据wsdl反向生成客户端代码 简化开发

下面我采用的是http get的方式调用其web service,采用的是HttpClient4
import java.net.URLEncoder; 

import org.apache.http.client.HttpClient; 
import org.apache.http.client.ResponseHandler; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.BasicResponseHandler; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.params.HttpProtocolParams; 

/** 
* @author Tony Shen 
* 
*/ 
public class DomesticAirlineTest { 
        public static void main(String[] args) throws Exception{    
        String url = "/webservices/DomesticAirline.asmx/getDomesticAirlinesTime";    
        String host = "www.webxml.com.cn"; 
        String param = "startCity="+URLEncoder.encode("北京", "utf-8")+"&lastCity="+URLEncoder.encode("上海", "utf-8")+"&theDate=&userID="; 
         
        HttpClient httpclient = new DefaultHttpClient(); 
        httpclient.getParams().setParameter(HttpProtocolParams.HTTP_CONTENT_CHARSET,"UTF-8"); 

        HttpGet httpget = new HttpGet("http://"+host+url+"?"+param); 

        ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
        String responseBody = httpclient.execute(httpget, responseHandler); 
        System.out.println(responseBody); 
        httpclient.getConnectionManager().shutdown(); 
        } 
} 



Groovy版本,主要使用了groovy的HTTPBuilder,需要这个jar
import groovyx.net.http.HTTPBuilder 
import static groovyx.net.http.Method.GET 
import static groovyx.net.http.ContentType.TEXT 
       
def url = "/webservices/DomesticAirline.asmx/getDomesticAirlinesTime";    
def host = "www.webxml.com.cn"; 
def param = "startCity="+URLEncoder.encode("北京", "utf-8")+"&lastCity="+URLEncoder.encode("上海", "utf-8")+"&theDate=&userID="; 
         
def http = new HTTPBuilder("http://"+host+url+"?"+param) 
http.request(GET,TEXT) {req -> 
     headers.'User-Agent' = 'Mozilla/5.0' 
     response.success = { resp,reader -> 
         println resp 
         System.out << reader 
    }   
  } 
分享到:
评论
1 楼 di1984HIT 2014-02-04  
血的不错啊,

相关推荐

    groovy和Java相互调用1

    标题中的“Groovy和Java相互调用1”指的是在编程时如何在Groovy语言环境中调用Java类,以及反之,如何在Java程序中调用Groovy类。这是一种跨语言交互的方式,特别是在混合使用Groovy和Java的项目中非常常见。 ...

    Java调用Groovy,实时动态加载数据库groovy脚本

    我们可以编写一个Java方法,从MongoDB中查询到Groovy脚本,然后利用上述的Groovy调用机制执行这些脚本。 例如,我们可能会有一个MongoDB集合,其中每个文档包含一个字段存储Groovy脚本。Java代码会连接到MongoDB,...

    Java中使用Groovy的三种方式

    本文将深入探讨在Java项目中使用Groovy的三种主要方式,并阐述它们各自的优势和应用场景。 一、作为嵌入式脚本 Java 6引入了JSR 223(Scripting for the Java Platform),允许在Java程序中直接执行脚本语言。...

    [Groovy] Making Java Groovy 英文版

    Making Java Groovy is a practical handbook for developers who want to blend Groovy into their day to day work with Java It starts by introducing the key differences between Java and Groovy and how you...

    Java调用Groovy

    Java调用Groovy是一种常见的技术,特别是在开发过程中需要动态脚本支持时。Groovy是一种基于JVM(Java Virtual Machine)的、动态类型的编程语言,它与Java有着良好的互操作性,能够无缝集成到Java项目中。这篇博客...

    干货:Jenkins Pipeline调用shell、python、java、groovy脚本的正确使用姿势.doc

    Jenkins Pipeline 调用 shell、python、java、groovy 脚本的正确使用姿势 Jenkins Pipeline 是一个强大的自动化工具,可以帮助开发者自动化构建、测试和部署流程。在设计 Pipeline 脚本的过程中,经常会遇到调用...

    基于groovy实现 java脚本动态编译、部署、发布;可以通过脚本直接调用dubbo接口.zip

    Groovy提供了GroovyShell和GroovyClassLoader两个工具,它们能够帮助我们即时编译和执行Groovy代码。GroovyShell允许在运行时执行Groovy脚本,而GroovyClassLoader则可以动态加载和执行新的类。在Java应用中,只需...

    groovy http请求

    如果你在Groovy Shell或 Geb 测试框架中,你可以使用内建的`groovy.json.JsonSlurper`和`groovy.net.http.HTTPBuilder`结合的`RestClient`,这非常适合简单的REST API调用: ```groovy import groovyx.net....

    Java Groovy

    - **Web开发**:Groovy可以与Grails框架结合使用,快速构建高性能的企业级Web应用程序。 - **数据分析**:Groovy提供了强大的集合操作能力,适用于处理大量数据集的数据清洗和预处理任务。 #### 知识点五:Groovy与...

    Making Java Groovy源码

    Making Java Groovy Kenneth A. Kousen 1.Easier Java 2.Closures, builders, and metaprogramming 3.Gradle for builds, Spock for testing 4.Groovy frameworks like Grails and Griffon 源码

    Making Java Groovy--Kenneth.A.Kousen

    Making Java Groovy--Kenneth.A.Kousen. Java Groovy 很不错的学习资料

    SpringBoot-Gradle-Maven-Java-Groovy

    5. **Groovy**: Groovy是基于JVM的动态语言,语法简洁,与Java高度兼容,可以直接调用Java库。Groovy可以用于编写Gradle构建脚本,使得构建过程更加简洁和灵活。此外,Groovy也常用于服务器端开发,如Grails框架,...

    java调用脚本语言笔记(jython,jruby,groovy)

    本文将深入探讨如何在Java中调用三种流行的脚本语言:Jython、JRuby和Groovy。 ### Jython Jython是Python的一个Java实现,它允许Java开发者利用Python的强大语法和丰富的库。要使用Jython,首先需要在项目中引入...

    java与groovy互相调用1

    在Java和Groovy这两种语言中,互相调用代码是相当便捷的,因为它们可以无缝集成。Groovy是一种基于Java平台的脚本语言,它与Java有很高的互操作性,这使得开发者可以在同一个项目中混合使用Java和Groovy,充分利用...

    groovy调用java-se类库学习案例 Java学习资料

    通过"groovy-se-study"这个学习案例,你可以逐步探索和实践如何将这两个强大的工具结合在一起,从而提高你的编程效率和代码质量。 在"groovy-se-study-master"这个压缩包中,可能包含了一系列的Groovy脚本文件,每...

    java 动态脚本语言 精通 Groovy

    9. **Scripting in Java Applications**:Groovy可以嵌入到Java应用中作为脚本语言使用,例如在服务器端处理HTTP请求,或者作为配置文件来动态改变应用行为。 10. **持续集成与构建工具**:Groovy也是构建工具如...

    hugo110-java_run_groovy-master_java_

    标题“hugo110-java_run_groovy-master_java_”表明这是一个关于使用Java运行Groovy脚本的项目,可能是某个GitHub仓库的克隆或归档。描述中提到,这个环境是为了方便用户(可能是开发者)实践Groovy语言,并为后续的...

    Groovy+Java混合使用例子

    Groovy环境搭建教程中的例子工程,纯Java、纯Groovy以及Java+Groovy混合 教程参考:http://blog.csdn.net/rcom10002/archive/2011/06/26/6568557.aspx

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...

    groovy编写webservice服务端和客户端(含连接数据并输出JSON数据)

    标题中的“groovy编写webservice服务端和客户端(含连接数据并输出JSON数据)”表明了本文将探讨如何使用Groovy编程语言来构建Web服务的服务器端和客户端,并且这些服务会涉及与数据库的交互以及JSON数据的处理。...

Global site tag (gtag.js) - Google Analytics