VB6 ENVIAR XML

MGALDINO 05/07/2011 17:19:42
#378539
Pessoal Estou com erro ao tentar enviar XML.

Erro 400...


Meu Codigo...

Set XmlHttp = CreateObject([Ô]Msxml2.ServerXMLHTTP.6.0[Ô])

XmlHttp.Open [Ô]POST[Ô], [Ô]http://www.empresa.com.br/empresa/empresa.asp[Ô]
XmlHttp.setRequestHeader [Ô]Content-Length[Ô], Len(NomeArquivo)
XmlHttp.setRequestHeader [Ô]Content-Type[Ô], [Ô]text/xml; charset=utf-8[Ô]
XmlHttp.send NomeArquivo
If XmlHttp.Status >= 400 And XmlHttp.Status <= 599 Then
MsgBox [Ô]Error Occurred : [Ô] & XmlHttp.Status & [Ô] - [Ô] & XmlHttp.StatusText
Else
MsgBox XmlHttp.responseText
End If

Dim obj As MSXML2.ServerXMLHTTP
Set obj = New MSXML2.ServerXMLHTTP
obj.Open [Ô]GET[Ô], [Ô]http://localhost/testerr.htm[Ô]
obj.send

If obj.Status >= 400 And obj.Status <= 599 Then
Debug.Print [Ô]Error Occurred : [Ô] & obj.Status & [Ô] - [Ô] & obj.StatusText
Else
Debug.Print obj.responseText
End If


Nao existe usuario e senha no webservice...
Porem nao sei aonde possa estar o possivel erro.

XmlHttp.Status sempre esta com 400.
Nao conheço muito bem XML... agradeço a atenção.
NIKYTS 06/07/2011 04:50:23
#378558
[ô]pelo que percebi queres adicionar um usuario e senha á base de dados, certo? Se assim for...

      [ô]envia o pedido para o servidor
Dim servidor As XMLHTTP60: Set servidor = New XMLHTTP60
servidor.Open [Ô]GET[Ô], http://www.empresa.com.br/empresa/empresa.asp?Utilizador=[Ô] & Text_Utilizador.Text & [Ô]&Senha=[Ô] & Text_Senha.Text, False
servidor.send

[ô]verificar o que o servidor retorna
If servidor.responseText = [Ô]Existe[Ô] Then [ô]O servidor verificou no asp que o utilizador já existe (*)
MsgBox ([Ô]Esta conta já existe![Ô])
Exit Sub

ElseIf Not InStr(servidor.responseText, [Ô]HTTP Error[Ô]) > 0 Then
If servidor.readyState = 4 And servidor.Status = 200 And servidor.responseText = [Ô]sucesso[Ô] Then [ô] 4 - deu resposta e 200 validou. Adiciona os dados
MsgBox ([Ô]Utilizador criado com sucesso.[Ô])
End If
End If


(*) No ficheiro ASP

  <html>
<script language=[Ô]vbscript[Ô] runat=[Ô]server[Ô]>
Response.Expires = 0
[ô]?utilizador=<>&senha=<>
dim Recebe_Utilizador, Recebe_Senha

[ô]obter os dados do request
Recebe_Utilizador = request.queryString([Ô]Utilizador[Ô])
Recebe_Senha = request.queryString([Ô]Senha[Ô])
dim conn, query, rs, file

[ô]permitir que apenas um utilizador faça o acesso à base de dados (entr o lock e unlock)
application.lock()
response.clear [ô]limpa os dados da resposta. assim ha garantia que apenas está lá o que pusemos

dim fso : set fso = Server.CreateObject([Ô]Scripting.FileSystemObject[Ô])
file = Server.MapPath([Ô]Empresa.mdb[Ô])

if not fso.FileExists(file) then
response.write([Ô]error: db not found[Ô])
response.End()
end if

set conn = Server.CreateObject([Ô]ADODB.Connection[Ô])
conn.Provider=[Ô]Microsoft.Jet.OLEDB.4.0[Ô]
conn.open = file

set rs = Server.CreateObject([Ô]ADODB.RecordSet[Ô])
total = 0
[ô]verifica se o usuario já existe
query=[Ô]Select Utilizador from Tabela_Contas where Utilizador=[ô][Ô] & Recebe_Utilizador & [Ô][ô][Ô]
rs.open query, conn, 3, 3
if rs.recordcount > 0 then
response.write([Ô]Existe[Ô])
response.end()
end if
rs.close
rs = empty
[ô]Caso não exista adiciona á base de dados e retorna mensagem de sucesso
query = [Ô]INSERT INTO Tabela_Contas (Utilizador, Senha) VALUES([ô][Ô] & Recebe_Utilizador & [Ô][ô],[ô][Ô] & Recebe_Senha & [Ô][ô])[Ô]
conn.execute query, rscount

response.contentType = [Ô]text/plain[Ô] [ô]diz o tipo de co conteudo (podia ser image/jpeg, image/gif
if rscount = 1 then
response.write([Ô]sucesso[Ô])
end if
conn.close()
conn = empty

application.unlock()
</script>
</html>


espero ter ajudado...
MGALDINO 06/07/2011 08:32:00
#378563
NIKYTS beleza,

Esqueci so de explicar melhor...
Estou Usando VB6... Crio o XML pelo VB6 mesmo...
Esse XML é uma especie de Ordem de Serviço.

Aonde eu coloquei uma variavel chamada [Ô]NomeArquivo[Ô] é onde esta o XML para ser enviado ao WEB service do Cliente.
Mais o Problema não é nem o retorno ainda, o erro acontece quando verifico.



XmlHttp.Open [Ô]POST[Ô], [Ô]http://www.empresa.com.br/empresa/empresa.asp[Ô]
XmlHttp.setRequestHeader [Ô]Content-Length[Ô], Len(NomeArquivo)
XmlHttp.setRequestHeader [Ô]Content-Type[Ô], [Ô]text/xml; charset=utf-8[Ô]
XmlHttp.send NomeArquivo
If XmlHttp.Status >= 400 And XmlHttp.Status <= 599 Then
MsgBox [Ô]Error Occurred : [Ô] & XmlHttp.Status & [Ô] - [Ô] & XmlHttp.StatusText
Else
MsgBox XmlHttp.responseText
End If


Essa parte sempre esta XmlHttp.Status = 400.

Agora nao sei se o erro esta em meu XML ou esta na webservice do cliente.
Ja que os mesmo me informaram que esta sem usuario e senha na webservice.



MGALDINO 06/07/2011 15:36:03
#378602
COnsegui achar o erro... Declarei a variavel diferente obrigado.
Tópico encerrado , respostas não são mais permitidas