Test DataFlex with Zeep Python Library

This section provides a tutorial example on how to test the free Web service 'DataFlex' provided by oorsprong.org using the Zeep Python library.

Here is what I did to test the "DataFlex" Web service provided by oorsprong.org with the Zeep Python library.

1. Write the following Python test script with logging turned on at the DEBUG level.

#- DataFlex-Test.py
#- Copyright (c) 2024 HerongYang.com. All Rights Reserved.
#
import sys
from zeep import Client
import logging.config

logging.config.dictConfig({
    'version': 1,
    'formatters': {
        'verbose': {
            'format': '%(name)s: %(message)s'
        }
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'verbose',
        },
    },
    'loggers': {
        'zeep.transports': {
            'level': 'DEBUG',
            'propagate': True,
            'handlers': ['console'],
        },
    }
})

wsdl = "http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL"
operation = "CountryName"
param = "VI"

if (len(sys.argv)>1):
  operation = sys.argv[1]
  param = ""
if (len(sys.argv)>2):
  param = sys.argv[2]

client = Client(wsdl)
if (len(param)>0): 
  res = client.service[operation](param)
else:
  res = client.service[operation]()

print("\nTest result:")
if (len(param)>0): 
  print('   {0}({1}) = {2}'.format(operation, param, res))
else:
  print('   {0}() = {1}'.format(operation, res))

2. Run the test script:

herong$ python3 DataFlex-Test.py 

zeep.transports: Loading remote data from: 
  http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL
zeep.transports: HTTP Post to 
  http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso:

<?xml version='1.0' encoding='utf-8'?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
  <soap-env:Body>
    <ns0:CountryName xmlns:ns0="http://www.oorsprong.org/websamples.countryinfo">
      <ns0:sCountryISOCode>VI</ns0:sCountryISOCode>
    </ns0:CountryName>
  </soap-env:Body>
</soap-env:Envelope>

zeep.transports: HTTP Response from 
  http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso (status: 200):

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <m:CountryNameResponse xmlns:m="http://www.oorsprong.org/websamples.countryinfo">
      <m:CountryNameResult>Virgin Islands, U.S.</m:CountryNameResult>
    </m:CountryNameResponse>
  </soap:Body>
</soap:Envelope>

Test result:
   CountryName(VI) = Virgin Islands, U.S.

It works! The country name of country code "VI" is "Virgin Islands, U.S.".

Table of Contents

 About This Book

 Python SOAP Client: Zeep

 SoapUI - Web Service Testing Tool

 SOAP Web Service and SoapUI

 REST Web Service and SoapUI

 Mock Web Services - herongyang.com/Service

 "SoapResponder" and Web Service Test Tool

 "Calculator" for 4 Integer Operations

DataFlex Web Service for Country Information

 Operations Provided by DataFlex Web Service

Test DataFlex with Zeep Python Library

 DataFlex - "ListOfCountryNamesByName" Operation

 DataFlex - "FullCountryInfo" Operation

 LatLonListCityNames - Return Latitudes and Longitudes of US Cities

 LatLonListZipCode - Return Latitudes and Longitudes of US Zip Code

 TempConvert Web Service for Temperature Conversion

 NDFDgenByDay - US Weather Forecast by Day

 NDFDgen - US-Weather Forecast for a Single Location

 Currency Exchange Rate

 Bitcoin Blockchain Data API (or Explorer)

 flickr.interestingness.getList - Get Interesting Photos

 UUID/GUID Generator

 NumberToWords - Convert Number in Digits to Words

 TitleCaseWordsWithToken - Words to Title Case Format

 "PUG SOAP" Web Service for PubChem Database

 RSC - ChemSpider APIs

 Discontinued: Currency Converter by kowabunga.net

 Discontinued: GetCountries - Get All Countries and Territories

 Discontinued: GetCurrencies - Get Currencies from All Countries

 Discontinued: GetGMTbyCountry - Get GMT Information of a Given Country

 Discontinued: GetISD - Get ISD Phone Code of a Given Country

 Discontinued: GetCitiesByCountry - Get Cities by Country

 Discontinued: GetInfoByState - Get ZIP Codes of a Given US State

 Discontinued: GetAirportInformationByCountry - Get Airport Code by Country

 Discontinued: GetGeoIP - Get Country by IP Address

 Discontinued: ConvertTemp - Convert Temperature Unit

 Discontinued: ChangeLengthUnit - Convert Length Unit

 Discontinued: ConvertWeight - Convert Weight Unit

 Discontinued: ChangeAreaUnit - Convert Area Unit

 Discontinued: Code39 - Generate Bar Code Images in Code 39 Format

 Discontinued: GenerateBarCode - Generate Bar Code Images

 Discontinued: GetMortgagePayment - Calculate Mortgage Payment

 Discontinued: ConversionRate - Get Currency Exchange Rate

 Discontinued: GetQuote - Get Stock Quote

 Discontinued: GetSunSetRiseTime - Get Sunrise and Sunset Time

 Discontinued: GetWeatherByZipCode - Get Weather by ZIP Code in US

 Discontinued: getTime - Get the Current Time

 Discontinued: questionSearch - Search Yahoo! Questions and Answers

 Discontinued: Hotwire - Get Travel Ticker Deals

 Archived Tutorials

 References

 Full Version in PDF/EPUB