Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia!
Tenho uma página asp com o código abaixo. A função seria a seguinte, o usuário digita no campo "busca" (de uma outra página) uma palavra qualquer, esse código envia para um webservice o que o usuário digitou, o webservice chama uma busca fonética no banco de dados e retorna o resultado da pesquisa, o resultado é impresso na tela em que o usuário digitou a palavra para buscar.
Function protEnviaBusca(busca)
Response.Flush()
Dim IntPorta, Session_ID, sql, PostUrlVersao, StrXML, retStr, VersaoID, XMLHTTP, msg, arrayRetStr
'protEnviaBusca = false
On Error Resume Next
Set XMLHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP")
PostUrlVersao = "http://www.servidor.com.br/webservice/Service.asmx"
StrXML = ""
StrXML = StrXML & "<?xml version='1.0' encoding='utf-8'?>"
StrXML = StrXML & "<soap12:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap12='http://www.w3.org/2003/05/soap-envelope'>"
StrXML = StrXML & "<soap12:Body>"
StrXML = StrXML & "<buscaAvancada xmlns='http://www.servidor.com.br/webservice/Service/'>"
StrXML = StrXML & "<buscaAvanc>"&busca&"</buscaAvanc>"
StrXML = StrXML & "</buscaAvancada>"
StrXML = StrXML & "</soap12:Body>"
StrXML = StrXML & "</soap12:Envelope>"
XMLHTTP.Open "POST", PostUrlVersao, false
XMLHTTP.setRequestHeader "Content-type", "text/xml;charset=ISO-8859-1;"
XMLHTTP.send(StrXML)
retStr = XMLHTTP.responseText
arrayRetStr = Split(retStr,",")
response.Write "xmlhttp: <BR>" & retStr & "<br><Br>" 'aqui estou exibindo na tela o erro que vem
response.End()
'set XMLHTTP = nothing
For i = 0 to Ubound(arrayRetStr)
sql_q = "Select * from solicitacao where id_solicitacao="&arrayRetStr(i)&";"
Response.Write(sql_q& "<br />")
Set rs = objDB.Execute(sql_q)
response.Write("<br>RETSTR: "&retStr&"<br>")
next
protEnviaBusca = retStr
On Error Goto 00
End Function
Mas ao executar a busca, na tela em que o uuário digita a palavra pra buscar aparece o seguinte erro:
xmlhttp:
soap:SenderSystem.Web.Services.Protocols.SoapException: Unable to handle request without a valid action parameter. Please supply a valid soap action. at System.Web.Services.Protocols.Soap12ServerProtocolHelper.RouteRequest() at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message) at System.Web.Services.Protocols.SoapServerProtocol.Initialize() at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
O que pode ser?
Desde já agradeço a ajuda!
Retornou o mesmo erro.
=(
Troque o método POST por GET e faça o teste, retorne o resultado.
dá um response.write na sua string StrXML , para ver como esta
se da erro não esta retornando nada ;)
Faça um teste simples e poste o que foi retornado
<%
Set XMLHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP")
PostUrlVersao = "http://www.servidor.com.br/webservice/Service.asmx"
StrXML = ""
StrXML = StrXML & "<?xml version='1.0' encoding='utf-8'?>"
StrXML = StrXML & "<soap12:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap12='http://www.w3.org/2003/05/soap-envelope'>"
StrXML = StrXML & "<soap12:Body>"
StrXML = StrXML & "</soap12:Body>"
StrXML = StrXML & "</soap12:Envelope>"
XMLHTTP.Open "POST", PostUrlVersao, false
XMLHTTP.setRequestHeader "Content-type", "text/xml;charset=ISO-8859-1;"
XMLHTTP.send(StrXML)
Response.Write XMLHTTP.responseText
%>