用于调用Service的Python代码。什么可以是C#中的等效代码?

时间:2013-08-14 20:59:37

标签: c# python web-services http soap

我在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()

1 个答案:

答案 0 :(得分:0)

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

完成此操作后,您可以使用添加的Web服务的对象和方法。