用post连接.net soap服务

本文介绍如何使用Ruby通过POST方式调用.NET提供的Webservice服务,包括请求发送及响应处理的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.net的web service服务跟ruby有点区别,不过可以使用post方式来使用,这个很方便。

一般来说.net提供的服务支持GET,POST和SOAP方式,还提供了一个简单的网页以供测试,先测试好服务是可用的,然后写ruby客户端。

res=Net::HTTP.post_form(URI.parse(SERVICE_POST_URL),{...parameters...})  #参数是一个hash,由服务来决定接口参数

#处理返回结果
      case res
      when Net::HTTPSuccess
        doc=Hpricot.parse(res.body)
        ret_msg=(doc/:string).text
        if error_msg?(ret_msg)
          return {"error"=>"authentication error!"}
        else
          return {"msg"=>ret_msg}
        end
      when Net::HTTPInternalServerError
        return {"error"=>"internal server error!"}
      when Net::HTTPForbidden
        return {"error"=>"service forbidden"}
      when Net::HTTPNotFound
        return {"error"=>"service no found!"}
      when Net::HTTPServiceUnavailable
        return {"error"=>"service unavailable!"}
      else
        return {"error"=>"err!"}
      end


其中Hpricot是解析xml和html的,一般会返回xml,解析起来还算快,api也特别简单。各种case就是来判断返回错误的。

直接用soap包似乎有点问题,对返回的http 头处理不了。而.net会返回一个头,不是直接返回xml的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值