ASP 3.0 MSXML2.ServerXMLHTTP.6.0 и метод restful с необязательным параметром - PullRequest
0 голосов
/ 11 июня 2018

У нас есть спокойное веб-приложение, написанное на .NET (4.6.1), которое имеет следующий UriTemplate:

[OperationContract]
    [WebGet(UriTemplate = "/GetAssociationLevelCustomerData/{environment}/{AssetKeyFilter=-1}/{UsersTZOffset=0}",
        ResponseFormat = WebMessageFormat.Json)]

public PLEGatewayCore.Entities.M2MDB.DSPAssociationItem    GetAssociationLevelCustomerItem(string environment, String AssetKeyFilter, string UsersTZOffset)

Затем у нас есть классическое приложение ASP (3.0) (VbScript), пытающееся получитьданные от него с помощью следующего механизма:

Sub ExecuteWebRequest(strMethod, url, data, intStatus, strResponse)
Dim webRequest
'On Error Resume Next
Set webRequest = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")

If Err.Number <> 0 Then
  intStatus = -1
  strResponse = "(" & Err.Number & ") " & Err.Description
      Else
  With webRequest
    .Open strMethod, url, false
    .SetRequestHeader "Content-Type", "application/json"
    .SetRequestHeader "Authorization", Session("ses_APIToken")
    .SetRequestHeader "Ver", "3.0"
    .SetRequestHeader "SourceId", "3"
    IF strMethod = "POST" THEN
        .Send data
    ELSE
        .Send
    END IF

    If Err.Number <> 0 Then
      intStatus = -1
      strResponse = "(" & Err.Number & ") " & Err.Description
    Else
      intStatus = .Status
      strResponse = "(" & .Status & ") " & .StatusText
      If .Status = "200" Then strResponse = .ResponseText End If
    End if
   End With
End If

Set webRequest = Nothing

'Exit Sub

End Sub

Примеры:

https://<url>/GetAssociationLevelCustomerData/PROD/6108213631162262528/4

работает

https://<url>/GetAssociationLevelCustomerData/PROD/6108213631162262528

не работает

Что мы замечаем, так это то, что если мы не укажем необязательный / не заданный по умолчанию параметр, например «UsersTZOffset», то запрос не будет выполнен.Если мы запустим URL-адрес из PostMan, у нас нет проблем.Что может вызвать это поведение?Это как-то связано с объектом XMLHttp.6.0, или что-то в конечной точке успокоительного API, или что-то еще полностью?

...