質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.25%

pythonでsoapheaderに認証情報を入れる方法について

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 37

sarasa_38765

score 8

以下のサービスをpythonから利用すべく、先方からユーザーID、パスワードを頂いたのですが認証がうまくいきません。WSDLを見てみるとsoapheaderに入れているようなのですが入れる方法が分かりません。

http://wstest.railgo.jp/Expservice10.asmx?WSDL

Prefixes:
     xsd: http://www.w3.org/2001/XMLSchema
     ns0: http://expart.est.co.jp/ExpService

Global elements:
     ns0:Authentication(ns0:Authentication)
     ns0:GetDefaultNavigation()
     ns0:GetDefaultNavigationResponse(GetDefaultNavigationResult: ns0:Navigation)
     ns0:GetUserPoints(Date: xsd:dateTime)
     ns0:GetUserPointsResponse(GetUserPointsResult: xsd:int)
     ns0:SearchCourse(Stations: ns0:ArrayOfStation, SearchOption: ns0:Navigation)
     ns0:SearchCourseAll(DepartureStations: ns0:ArrayOfStation, ArrivalStations: ns0:ArrayOfStation, SearchOption: ns0:Navigation)
     ns0:SearchCourseAllResponse(SearchCourseAllResult: ns0:ArrayOfCourse)
     ns0:SearchCourseResponse(SearchCourseResult: ns0:ArrayOfCourse)
     ns0:SearchStation(StationYomi: xsd:string, AreaType: ns0:AreaType, StationType: ns0:StationType, Date: xsd:int)
     ns0:SearchStationAll(StationYomiArray: ns0:ArrayOfString, AreaType: ns0:AreaType, StationType: ns0:StationType, Date: xsd:int)
     ns0:SearchStationAllResponse(SearchStationAllResult: ns0:ArrayOfArrayOfStation)
     ns0:SearchStationResponse(SearchStationResult: ns0:ArrayOfStation)


Global types:
     xsd:anyType
     ns0:AirlineFareType
     ns0:AreaType
     ns0:ArrayOfArrayOfStation(ArrayOfStation: ns0:ArrayOfStation[])
     ns0:ArrayOfCourse(Course: ns0:Course[])
     ns0:ArrayOfFare(Fare: ns0:Fare[])
     ns0:ArrayOfFareSection(FareSection: ns0:FareSection[])
     ns0:ArrayOfPassSection(PassSection: ns0:PassSection[])
     ns0:ArrayOfRouteSection(RouteSection: ns0:RouteSection[])
     ns0:ArrayOfStation(Station: ns0:Station[])
     ns0:ArrayOfStationType(StationType: ns0:StationType[])
     ns0:ArrayOfString(string: xsd:string[])
     ns0:ArrayOfSurchargeSection(SurchargeSection: ns0:SurchargeSection[])
     ns0:Authentication(User: xsd:string, Password: xsd:string, _attr_1: {})
     ns0:CareState
     ns0:Corporation(Name: xsd:string, LineType: ns0:LineType)
     ns0:Course(Description: xsd:string, Stations: ns0:ArrayOfStation, RouteSections: ns0:ArrayOfRouteSection, FareSections: ns0:ArrayOfFareSection, SurchargeSections: ns0:ArrayOfSurchargeSection, PassSections: ns0:ArrayOfPassSection, TotalTime: xsd:int, TotalBoardTime: xsd:int, TotalWalkTime: xsd:int, TotalOtherTime: xsd:int, TransferCount: xsd:int, TotalDistance: xsd:int, PassFare: ns0:PassSection, TotalFare: ns0:Fare, TotalSurcharge: ns0:Fare)
     ns0:Fare(OneWayFare: xsd:decimal, RoundTripFare: xsd:decimal, airlineFareType: ns0:AirlineFareType, SurchaegeSeatType: ns0:SeatType, FareTypeName: xsd:string)
     ns0:FareSection(StationFrom: ns0:Station, StationTo: ns0:Station, FareList: ns0:ArrayOfFare, Comment: xsd:string)
     ns0:GeodeticDatum(bearing: xsd:string, degree: xsd:int, minutes: xsd:int, second: xsd:decimal)
     ns0:Line(lineType: ns0:LineType, Name: xsd:string, LongName: xsd:string, ShortName: xsd:string, OperationCorporation: ns0:Corporation, Color: xsd:int, StopStations: ns0:ArrayOfStation)
     ns0:LineType
     ns0:Navigation(AnswerCount: xsd:int, TargetDate: xsd:int, TargetTime: xsd:int, Departure: xsd:boolean, SurchargeKind: ns0:SeatType, PassType: ns0:PassType, IgnoreSeasonJR: xsd:boolean, IncludeInsuranceSurcharge: xsd:boolean, TicketSystem: ns0:TicketSystem, FuzzyLine: xsd:boolean, Airplane: ns0:UseState, Express: ns0:UseState, JR: ns0:UseState, Walk: ns0:CareState, Change: ns0:CareState, UseLocalBus: xsd:boolean, HighwayBus: ns0:UseState, ConnectionBus: ns0:UseState, WaitTime: ns0:WaitTimeState, StartStation: ns0:UseState, SleepingTrain: ns0:UseState, LocalBusOnly: xsd:boolean, Sort: ns0:SortType)
     ns0:PassSection(StationFrom: ns0:Station, StationTo: ns0:Station, OneMonth: xsd:int, ThreeMonth: xsd:int, SixMonth: xsd:int, FreePass: xsd:boolean)
     ns0:PassType
     ns0:RouteSection(Line: ns0:Line, Train: ns0:Train, StationFrom: ns0:Station, StationTo: ns0:Station, LineType: ns0:LineType, Distance: xsd:int, CorpName: xsd:string, ConnectedSection: xsd:boolean, BackSection: xsd:boolean, StopStations: ns0:ArrayOfStation)
     ns0:SeatType
     ns0:SortType
     ns0:Station(Types: ns0:ArrayOfStationType, Name: xsd:string, LongName: xsd:string, LineName: xsd:string, ShortName: xsd:string, Yomi: xsd:string, LandmarkCategory: xsd:string, LandmarkNearestStation: ns0:ArrayOfStation, LandmarkNearestStationTransfer: ns0:ArrayOfCourse, Latitude: ns0:GeodeticDatum, Longitude: ns0:GeodeticDatum)
     ns0:StationType
     ns0:SurchargeSection(SurchargeFrom: ns0:Station, SurchargeTo: ns0:Station, Surcharges: ns0:ArrayOfFare)
     ns0:TicketSystem
     ns0:Train(ID: xsd:int, TimetableDate: xsd:int, DepartureTime: xsd:int, ArrivalTime: xsd:int)
     ns0:UseState
     ns0:WaitTimeState
     xsd:ENTITIES
     xsd:ENTITY
     xsd:ID
     xsd:IDREF
     xsd:IDREFS
     xsd:NCName
     xsd:NMTOKEN
     xsd:NMTOKENS
     xsd:NOTATION
     xsd:Name
     xsd:QName
     xsd:anySimpleType
     xsd:anyURI
     xsd:base64Binary
     xsd:boolean
     xsd:byte
     xsd:date
     xsd:dateTime
     xsd:decimal
     xsd:double
     xsd:duration
     xsd:float
     xsd:gDay
     xsd:gMonth
     xsd:gMonthDay
     xsd:gYear
     xsd:gYearMonth
     xsd:hexBinary
     xsd:int
     xsd:integer
     xsd:language
     xsd:long
     xsd:negativeInteger
     xsd:nonNegativeInteger
     xsd:nonPositiveInteger
     xsd:normalizedString
     xsd:positiveInteger
     xsd:short
     xsd:string
     xsd:time
     xsd:token
     xsd:unsignedByte
     xsd:unsignedInt
     xsd:unsignedLong
     xsd:unsignedShort

Bindings:
     Soap11Binding: {http://expart.est.co.jp/ExpService}ExpService10Soap
     Soap12Binding: {http://expart.est.co.jp/ExpService}ExpService10Soap12

Service: ExpService10
     Port: ExpService10Soap (Soap11Binding: {http://expart.est.co.jp/ExpService}ExpService10Soap)
         Operations:
            GetDefaultNavigation(_soapheaders={Authentication: ns0:Authentication}) -> GetDefaultNavigationResult: ns0:Navigation
            GetUserPoints(Date: xsd:dateTime, _soapheaders={Authentication: ns0:Authentication}) -> GetUserPointsResult: xsd:int
            SearchCourse(Stations: ns0:ArrayOfStation, SearchOption: ns0:Navigation, _soapheaders={Authentication: ns0:Authentication}) -> SearchCourseResult: ns0:ArrayOfCourse
            SearchCourseAll(DepartureStations: ns0:ArrayOfStation, ArrivalStations: ns0:ArrayOfStation, SearchOption: ns0:Navigation, _soapheaders={Authentication: ns0:Authentication}) -> SearchCourseAllResult: ns0:ArrayOfCourse
            SearchStation(StationYomi: xsd:string, AreaType: ns0:AreaType, StationType: ns0:StationType, Date: xsd:int, _soapheaders={Authentication: ns0:Authentication}) -> SearchStationResult: ns0:ArrayOfStation
            SearchStationAll(StationYomiArray: ns0:ArrayOfString, AreaType: ns0:AreaType, StationType: ns0:StationType, Date: xsd:int, _soapheaders={Authentication: ns0:Authentication}) -> SearchStationAllResult: ns0:ArrayOfArrayOfStation

     Port: ExpService10Soap12 (Soap12Binding: {http://expart.est.co.jp/ExpService}ExpService10Soap12)
         Operations:
            GetDefaultNavigation(_soapheaders={Authentication: ns0:Authentication}) -> GetDefaultNavigationResult: ns0:Navigation
            GetUserPoints(Date: xsd:dateTime, _soapheaders={Authentication: ns0:Authentication}) -> GetUserPointsResult: xsd:int
            SearchCourse(Stations: ns0:ArrayOfStation, SearchOption: ns0:Navigation, _soapheaders={Authentication: ns0:Authentication}) -> SearchCourseResult: ns0:ArrayOfCourse
            SearchCourseAll(DepartureStations: ns0:ArrayOfStation, ArrivalStations: ns0:ArrayOfStation, SearchOption: ns0:Navigation, _soapheaders={Authentication: ns0:Authentication}) -> SearchCourseAllResult: ns0:ArrayOfCourse
            SearchStation(StationYomi: xsd:string, AreaType: ns0:AreaType, StationType: ns0:StationType, Date: xsd:int, _soapheaders={Authentication: ns0:Authentication}) -> SearchStationResult: ns0:ArrayOfStation
            SearchStationAll(StationYomiArray: ns0:ArrayOfString, AreaType: ns0:AreaType, StationType: ns0:StationType, Date: xsd:int, _soapheaders={Authentication: ns0:Authentication}) -> SearchStationAllResult: ns0:ArrayOfArrayOfStation

zeepのところでサンプルは見つけてきたのですが、ns0:Authentication(User: xsd:string, Password: xsd:string, _attr_1: {})の分をどうhedderの記述すれば良いのかわかりません。

from zeep import xsd

header = xsd.Element(
    '{http://test.python-zeep.org}auth',
    xsd.ComplexType([
        xsd.Element(
            '{http://test.python-zeep.org}username',
            xsd.String()),
    ])
)
header_value = header(username='mvantellingen')
client.service.Method(_soapheaders=[header_value])
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.25%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる