0

我得到了一些 Python 代码来调用 SOAP Web 服务。我想用 C# 编写等效的代码。我是 Python 新手,所以无法在 c# 中找到等效的类。我尝试通过创建代理和其他方式但不工作。请帮忙。

import suds
from suds.client import Client
from suds.wsse import *
def main():

    url = 'https://webservices.cp.com/webservices/cphargepoint/services/4.1'
    wsdl = 'https://webservices.cp.com/api.wsdl'
    # API user and password
    api_user = 'yrewte44'
    api_pass = 'eg430'

    # create client and add security tokens in the soap header
    client = Client(url=wsdl, location=url)
    security = Security()
    token = UsernameToken(api_user, api_pass)
    security.tokens.append(token)
    client.set_options(wsse=security)
    try:
        # un-comment the print statement below to see the list of all published
        # CP service SOAP methods.
        # print client

        # getPublicStations() service method accepts a type of 'stationSearchRequest'
        searchQuery = client.factory.create('stationSearchRequest')
        # add properties/filter options
        searchQuery.Proximity = 10
        searchQuery.proximityUnit = 'M'
        # create goeData, provide starting point co-ordinates
        geoData = client.factory.create('geoData')
        geoData.Lat = 37.425758
        geoData.Long = -122.097807
        searchQuery.Geo = geoData

        # here is the actual call to the service        
        response = client.service.getPublicStations(searchQuery)
        # do whatever with the data
        # print response
    except suds.WebFault as detail:
        print detail

if __name__=="__main__":
    main()
4

1 回答 1

0

您可以通过 Visual Studio 轻松地将 Web 服务 (soap) 添加为对 C# 项目的引用。下面有一篇很好的文章:http: //a1ashiish-csharp.blogspot.com/2012/01/cnet-how-to-consume-web-service-in-cnet.html

之后,您可以使用添加的 Web 服务的对象和方法。

于 2013-09-16T21:01:07.477 回答