伙计,我正在开发一个 api,我必须使用soap请求将请求发送到基于xml的服务器,但服务器向我显示以下错误:远程服务器返回错误:(500)内部服务器错误,非常感谢帮助
我的代码是这样的:
Dim s = ""
s = s & "<?xml version=""1.0"" encoding=""UTF-8""?>" & vbCrLf
s = s & "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">" & vbCrLf
s = s & "<soapenv:Body>" & vbCrLf
s = s & "<OTA_AirLowFareSearchRQ EchoToken=""0"" SequenceNmbr=""0"" TransactionIdentifier=""0"" AvailableFlightsOnly="""" DirectFlightsOnly="""" xmlns=""http://www.opentravel.org/OTA/2003/05"">" & vbCrLf
s = s & "<POS xmlns=""http://www.opentravel.org/OTA/2003/05"">" & vbCrLf
s = s & "<Source AgentSine="""" PseudoCityCode="""" TerminalID=""1"">" & vbCrLf
s = s & "<RequestorID ID=""AFFILIATE""/>" & vbCrLf
s = s & "</Source>" & vbCrLf
s = s & "<YatraRequests>" & vbCrLf
s = s & "<YatraRequest DoNotHitCache=""false"" DoNotCache=""false"" YatraRequestTypeCode=""SMPA"" Description="""" MidOfficeAgentID=""28737"" AffiliateID=""TRAVELPARTNER"" />" & vbCrLf
s = s & "</YatraRequests>" & vbCrLf
s = s & "</POS>" & vbCrLf
s = s & "<TravelerInfoSummary>" & vbCrLf
s = s & "<AirTravelerAvail>" & vbCrLf
s = s & "<PassengerTypeQuantity Code=""ADT"" Quantity=""" & drAdult.SelectedValue & """/>" & vbCrLf
s = s & "<PassengerTypeQuantity Code=""CHD"" Quantity=""" & drpChil.SelectedValue & """/>" & vbCrLf
s = s & "<PassengerTypeQuantity Code=""INF"" Quantity=""" & drpInfant.SelectedValue & """/>" & vbCrLf
s = s & "</AirTravelerAvail>" & vbCrLf
s = s & "</TravelerInfoSummary>" & vbCrLf
s = s & "<SpecificFlightInfo>" & vbCrLf
s = s & "<Airline Code=""""/>" & vbCrLf
s = s & "</SpecificFlightInfo>" & vbCrLf
s = s & "<OriginDestinationInformation>" & vbCrLf
s = s & "<DepartureDateTime>" & txtDeparture.Text & "</DepartureDateTime>" & vbCrLf
s = s & "<OriginLocation CodeContext=""IATA"" LocationCode=""" & drpFrom.SelectedValue & """>" & drpFrom.SelectedValue & "</OriginLocation>" & vbCrLf
s = s & "<DestinationLocation CodeContext=""IATA"" LocationCode=""" & drpTo.SelectedValue & """>" & drpTo.SelectedValue & "</DestinationLocation>" & vbCrLf
s = s & "</OriginDestinationInformation>" & vbCrLf
s = s & "<TravelPreferences>" & vbCrLf
s = s & "<VendorPref Code=""SG""/>" & vbCrLf
s = s & "<VendorPref Code=""DN""/>" & vbCrLf
s = s & "<CabinPref Cabin=""" & drpClass.SelectedValue & """/>" & vbCrLf
s = s & "</TravelPreferences>" & vbCrLf
s = s & "</OTA_AirLowFareSearchRQ>" & vbCrLf
s = s & "</soapenv:Body>" & vbCrLf
s = s & "</soapenv:Envelope>" & vbCrLf
Dim url = "http://203.189.91.127:9090/services/spm/spm"
Dim doc As New XmlDocument()
doc.LoadXml(s)
Dim req As HttpWebRequest = WebRequest.Create(url)
req.Headers.Add("SOAPAction", "")
req.ContentType = "text/xml;charset=""utf-8"""
req.Accept = "text/xml"
req.Method = "POST"
Dim stm As Stream = req.GetRequestStream()
doc.Save(stm)
stm.Close()
Dim resp As WebResponse = req.GetResponse()
stm = resp.GetResponseStream()
Dim r As StreamReader = New StreamReader(stm)
'process SOAP return doc here. For now, we'll just send the XML out to the browser ...
Response.Write(r.ReadToEnd())