Changes to ClientSide.tcl.
︙ | | |
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
|
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
|
-
+
-
+
-
+
|
proc ::WS::Client::GetAndParseWsdl {url {headers {}} {serviceAlias {}}} {
variable currentBaseUrl
set currentBaseUrl $url
switch -exact -- [dict get [::uri::split $url] scheme] {
file {
upvar #0 [::uri::geturl $url] token
set wsdlInfo [ParseWsdl $token(data) -headers [string map {\{ \" \} \"} $headers] -serviceAlias $serviceAlias]
set wsdlInfo [ParseWsdl $token(data) -headers $headers -serviceAlias $serviceAlias]
unset token
}
http -
https {
if {[llength $headers]} {
set token [::WS::Utils::geturl_followRedirects $url -headers [string map {\{ \" \} \"} $headers]]
set token [::WS::Utils::geturl_followRedirects $url -headers $headers]
} else {
set token [::WS::Utils::geturl_followRedirects $url]
}
::http::wait $token
set wsdlInfo [ParseWsdl [::http::data $token] -headers [string map {\{ \" \} \"} $headers] -serviceAlias $serviceAlias]
set wsdlInfo [ParseWsdl [::http::data $token] -headers $headers -serviceAlias $serviceAlias]
::http::cleanup $token
}
default {
return \
-code error \
-errorcode [list WS CLIENT UNKURLTYP $url] \
"Unknown URL type '$url'"
|
︙ | | |
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
|
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
|
-
-
+
+
|
if {[dict exists $serviceInfo headers]} {
set headers [concat $headers [dict get $serviceInfo headers]]
}
if {[dict exists $serviceInfo operation $operationName action]} {
lappend headers SOAPAction [format {"%s"} [dict get $serviceInfo operation $operationName action]]
}
if {[llength $headers]} {
::log::log info [list ::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers [string map {\{ \" \} \"} $headers]]
set token [::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers [string map {\{ \" \} \"} $headers]]
::log::log info [list ::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers $headers]
set token [::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers $headers]
} else {
::log::log info [::http::geturl $url -query $query -type [dict get $serviceInfo contentType]]
set token [::http::geturl $url -query $query -type [dict get $serviceInfo contentType]]
}
::http::wait $token
##
|
︙ | | |
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
|
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
|
-
-
+
+
|
if {[dict exists $serviceInfo headers]} {
set headers [concat $headers [dict get $serviceInfo headers]]
}
if {[dict exists $serviceInfo operation $operationName action]} {
lappend headers SOAPAction [format {"%s"} [dict get $serviceInfo operation $operationName action]]
}
if {[llength $headers]} {
::log::log info [list ::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers [string map {\{ \" \} \"} $headers]]
set token [::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers [string map {\{ \" \} \"} $headers]]
::log::log info [list ::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers $headers]
set token [::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers $headers]
} else {
::log::log info [list ::http::geturl $url -query $query -type [dict get $serviceInfo contentType] ]
set token [::http::geturl $url -query $query -type [dict get $serviceInfo contentType] ]
}
::http::wait $token
##
|
︙ | | |
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
|
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
|
-
+
-
+
|
RestoreSavedOptions $serviceName
}
if {[llength $headers]} {
::log::log info [list \
::http::geturl $url \
-query $query \
-type [dict get $serviceInfo contentType] \
-headers [string map {\{ \" \} \"} $headers] \
-headers $headers \
-command [list ::WS::Client::asyncCallDone $serviceName $operationName $succesCmd $errorCmd] \
]
::http::geturl $url \
-query $query \
-type [dict get $serviceInfo contentType] \
-headers [string map {\{ \" \} \"} $headers] \
-headers $headers \
-command [list ::WS::Client::asyncCallDone $serviceName $operationName $succesCmd $errorCmd]
} else {
::log::log info [list \
::http::geturl $url \
-query $query \
-type [dict get $serviceInfo contentType] \
-command [list ::WS::Client::asyncCallDone $serviceName $operationName $succesCmd $errorCmd] \
|
︙ | | |
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
|
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
|
-
-
+
+
|
} else {
RestoreSavedOptions $serviceName
}
if {[dict exists $serviceInfo headers]} {
set headers [concat $headers [dict get $serviceInfo headers]]
}
if {[llength $headers]} {
::log::log info [list ::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers [string map {\{ \" \} \"} $headers]]
set token [::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers [string map {\{ \" \} \"} $headers]]
::log::log info [list ::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers $headers]
set token [::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers $headers]
} else {
::log::log [list ::http::geturl $url -query $query -type [dict get $serviceInfo contentType]]
set token [::http::geturl $url -query $query -type [dict get $serviceInfo contentType]]
}
::http::wait $token
##
|
︙ | | |
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
|
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
|
-
-
+
+
|
} else {
RestoreSavedOptions $serviceName
}
if {[dict exists $serviceInfo headers]} {
set headers [concat $headers [dict get $serviceInfo headers]]
}
if {[llength $headers]} {
::log::log info [list ::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers [string map {\{ \" \} \"} $headers]]
set token [::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers [string map {\{ \" \} \"} $headers]]
::log::log info [list ::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers $headers]
set token [::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers $headers]
} else {
::log::log info [list::http::geturl $url -query $query -type [dict get $serviceInfo contentType]]
set token [::http::geturl $url -query $query -type [dict get $serviceInfo contentType]]
}
::http::wait $token
##
|
︙ | | |
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
|
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
|
-
+
|
#
###########################################################################
proc ::WS::Client::DoRestAsyncCall {serviceName objectName operationName argList succesCmd errorCmd {headers {}}} {
variable serviceArr
set svcHeaders [dict get $serviceArr($serviceName) headers]
if {[llength $svcHeaders]} {
lappend headers $svcHeaders
set headers [concat $headers $svcHeaders]
}
::log::log debug "Entering ::WS::Client::DoAsyncRestCall [list $serviceName $objectName $operationName $argList $succesCmd $errorCmd $headers]"
if {![info exists serviceArr($serviceName)]} {
return \
-code error \
-errorcode [list WS CLIENT UNKSRV $serviceName] \
"Unknown service '$serviceName'"
|
︙ | | |
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
|
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
|
-
+
-
+
|
RestoreSavedOptions $serviceName
}
if {[llength $headers]} {
::log::log info [list \
::http::geturl $url \
-query $query \
-type [dict get $serviceInfo contentType] \
-headers [string map {\{ \" \} \"} $headers] \
-headers $headers \
-command [list ::WS::Client::asyncRestCallDone $serviceName $operationName $succesCmd $errorCmd] \
]
::http::geturl $url \
-query $query \
-type [dict get $serviceInfo contentType] \
-headers [string map {\{ \" \} \"} $headers] \
-headers $headers \
-command [list ::WS::Client::asyncRestCallDone $serviceName $operationName $succesCmd $errorCmd]
} else {
::log::log info [list \
::http::geturl $url \
-query $query \
-type [dict get $serviceInfo contentType] \
-command [list ::WS::Client::asyncRestCallDone $serviceName $operationName $succesCmd $errorCmd] \
|
︙ | | |