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

httpservice调用grails写的api遇到的一个小问题

阅读更多
     所谓grails写的api即为如下的风格:
http://localhost:8080/ZheLe/API/latestZheItem              返回JSON格式
http://localhost:8080/ZheLe/API/latestZheItem?type=1       返回JSON格式
http://localhost:8080/ZheLe/API/latestZheItem?type=2       返回XML格式

     通过render as XML 或者 render as JSON。这样做的好处是可以让flex的httpservice访问到并解析xml,甚至让手机客户端也能调用。

     刚开始时,url包含&符合,httpservice会报错,于是重新设计api,改用其他符号,这样就不报错了。

     这也许不是最佳方案,但是目前可行,如果有更好的办法,以后会考虑替换。以下一段代码是范例:
   /**
    * 用户登陆的API,需要输入的两个参数是userName、password
    * 输入userName、password的情况例如:http://localhost:8080/ZheLe/API/login/test?password=test         返回JSON格式
    * 输入userName、password、type的情况例如:http://localhost:8080/ZheLe/API/login/test?password=test/1 返回JSON格式
    * 输入userName、password、type的情况例如:http://localhost:8080/ZheLe/API/login/test?password=test/2 返回XML格式
    */
    def login = {
        def userName = params.id
        def str = params.password
        def strs = str.split("/")
        def password = null
        def type = null
        if (strs.length == 2) {
            password = strs[0]
            type = strs[1]
        } else {
            password = strs[0]
        }
        def user = User.findWhere(userName:userName,password:password)
        if (user) {
            if("1".equals(type) || type == null || "".equals(type)) {
                render user as JSON
            } 
            else if ("2".equals(type)) {
               render (contentType:"text/xml",encoding:"UTF-8") {
                   list {
                       UserName(user.userName)
                       Password(user.password)
                       Email(user.email)
                       City(user.city)
                       Attentions(user.attentions)
                   }
               }
            }
            else
               render(text:"<xml><user>type参数没有设置正确</user></xml>",contentType:"text/xml",encoding:"UTF-8")
        }
        else
           render(text:"<xml><user>not found user</user></xml>",contentType:"text/xml",encoding:"UTF-8")
    }


    
分享到:
评论

相关推荐

    Flex+HTTPService 例子

    7. **HTTPServiceTest**:根据压缩包中的文件名,我们可以推测这个例子可能包含了一个简单的HTTPService测试应用。解压后,查看源代码能更深入地理解如何在实际项目中应用这些概念。 这个例子对于初学者来说非常...

    FLEX _HTTPService的调用方法

    这是一个Flex应用程序,使用_HTTPService组件从服务器获取上述XML文件中的数据,并显示在DataGrid中。 ```mxml ();"&gt; &lt;mx:HTTPService id="chk" url="QueryDataSet.xml" result="productServiceResultHandler...

    flex4 httpservice 例子

    首先,我们需要在MXML文件中创建一个`HTTPService`实例,指定其URL和方法类型(GET或POST): ```xml &lt;s:HTTPService id="httpService" url="http://example.com/service.xml" method="GET"&gt; &lt;/s:HTTPService&gt; ...

    Flex4_httpService

    3. **远程调用Java服务**:Flex应用可以通过HTTPService调用Java Web服务(如SOAP、RESTful API等)。Java服务通常部署在Web服务器上,如Tomcat、Jetty等,处理Flex发送的请求并返回数据。 4. **配置过程**:在Flex...

    Flex HTTPService如何给后台传递参数 .doc

    - 异步请求完成后,通常需要一个结果处理函数来接收服务器返回的数据。在示例中,`resultHandler`函数展示了如何展示返回的数据或执行其他操作。 ### 结论 Flex中的HTTPService组件提供了灵活的方式与后台进行数据...

    Flex4.0 如何通过 HttpService和WebService与服务器进行通信

    2. 创建HTTPService实例:在MXML中声明并实例化一个HTTPService对象,设置其`url`属性指向服务器端处理请求的URL,以及`method`属性(GET或POST)。 ```xml &lt;mx:HTTPService id="httpService" url=...

    第 1 部分: 使用 Grails 和 Flex 构建 Web 应用程序

    - **连接Grails后端**:使用HTTPService或者AMFChannel(对于更高效的数据传输)在Flex中调用Grails的REST API。 - **测试和调试**:通过浏览器和Flex模拟器进行应用测试,确保前后端数据交互正常,修复可能出现的...

    HttpService(C#获取网站源码)

    1、HttpService.dll是一个用于http/https协议访问网络获取数据的链接库,该链接库封装了C#的HttpWebRequest用于请求数据的Get和Post的操作方式,直接输入一个网址即可实现获取对应网页的源码,为网络编程中必不可少...

    HttpService

    httpservice post get传数据

    flex httpservice 和 java通信 获取 java端的返回值

    HTTPService组件是Flex提供的一个用于与远程服务器进行HTTP通信的工具,它支持SOAP、RESTful等数据交换格式。而Java是一种广泛使用的后端编程语言,能够处理业务逻辑并提供Web服务。 1. **配置HTTPService** 在...

    将HttpService结果返回给控件

    在IT行业中,尤其是在Java或Android开发中,"将HttpService结果返回给控件"是一个常见的需求,涉及到网络请求、数据处理以及UI更新等关键环节。这里我们将深入探讨这个主题,并结合给定的"roomList.xml"文件名,推测...

    flex HttpService 入门例子

    简单的 flex HttpService例子,可供初学者参考

    ASP.NET HttpService

    .net 下用asp.net实现的HttpService例子; HttpService的部署方式跟网站的部署方式一样; 运行HttpClient前注意先配置下配置文件,Url为HttpService的地址

    java 中使用Flex的HttpService的详细配置

    在Java开发中,Flex HttpService是一个强大的工具,用于在Adobe Flex客户端与服务器之间进行数据通信。这个服务允许Flex应用程序通过HTTP协议发送请求到后端服务器,并接收响应数据。本篇文章将深入探讨如何在Java...

    Flex中利用HTTPService MXML标签(tag)将XML转化为对象(objects)

    在 Flex 开发中,HTTPService 是一个非常重要的组件,它允许我们从远程服务器获取数据,这些数据可以是 XML、JSON 或其他格式。本教程将详细解释如何使用 MXML 标签来配置 HTTPService,并将接收到的 XML 数据转换为...

    flex实例HTTPService

    压缩包中的"HTTPServiceStu"文件可能包含一个实际的Flex项目,演示了如何配置和使用HTTPService,以及处理返回数据的完整流程。通过研究这个示例,你可以更直观地理解HTTPService的工作原理和使用方法。 总结来说,...

    HttpService_pb12.5

    标题“HttpService_pb12.5”暗示我们正在讨论一个与PowerBuilder 12.5相关的HTTP服务组件或库。PowerBuilder(PB)是Sybase(现为SAP的一部分)开发的一种面向对象的编程环境,主要用于构建桌面和Web应用程序。在PB...

    Flex与后台交互的方法_HTTPService_WebService_URLLoader

    在开发富互联网应用程序(RIA)时,Flex作为一个强大的前端框架,常常需要与后端服务器进行数据交换以实现功能。本文将深入探讨Flex与后台交互的三种主要方法:HTTPService、WebService和URLLoader,并重点关注基于...

    Flex3 HTTPService 获得json数据

    1. **创建HTTPService实例**:在Flex代码中,首先需要创建一个HTTPService对象。你可以通过MXML或者ActionScript来创建。例如,在MXML中,可以这样写: ```xml &lt;mx:HTTPService id="httpService" url=...

    flex 解析xml文件 httpservice

    在这个例子中,我们创建了一个HTTPService实例,设置了URL和method,然后添加了一个结果事件监听器。在`handleResult`函数中,我们把返回的XML字符串转换为XML对象,使用XPath表达式或属性访问语法筛选出需要的节点...

Global site tag (gtag.js) - Google Analytics