Premessa: lavoro in locale sul mio client in vb, il server Tomcat è su una macchina di cui conosco l'URL; il mio obiettivo è quello di caricare un file da SAP Business One.

Devo fare una chiamata al server con post di dati xml.

Mi sono creata la stringa di dati xml in questo modo:

xmlStr = "<?xml version='1.0' encoding='UTF-8'?>" & vbCr & ""
xmlStr &= "<insert_request login=""" & login & """ password=""" & password & """>" & vbCr & ""
xmlStr &= "<documento id_routing=""fatt"" versione=""1"" modello=""fattura"""
xmlStr &= " descrizione=""prova inserimento"" id=""fattura.pdf"" parole_chiave="""">" & vbCr & ""
xmlStr &= "<campo valore=""" & codForn & """ nome=""codice_fornitore"" tipo=""string""/>" & vbCr & ""
xmlStr &= "<campo valore=""" & numDocForn & """ nome=""numero_doc_forn"" tipo=""string""/>" & vbCr & ""
xmlStr &= "<campo valore=""" & dataDocForn & """ nome=""data_documento"" tipo=""date""/>" & vbCr & ""
xmlStr &= "<campo valore=""" & numInternoSap & """ nome=""num_int_sap"" tipo=""string""/>" & vbCr & ""
xmlStr &= "<campo valore=""" & dataRegistrSap & """ nome=""data_registrazione_doc"" tipo=""date""/>" & vbCr & ""
xmlStr &= "<campo valore=""" & dataScadenza & """ nome=""data_scadenza"" tipo=""date""/>" & vbCr & ""
xmlStr &= "<campo valore=""Fattura"" nome=""tipo_doc"" tipo=""string""/>" & vbCr & ""
xmlStr &= "<content>" & base64String & "</content>" & vbCr & ""
xmlStr &= "<lista_distribuzione>" & vbCr & ""
xmlStr &= "</lista_distribuzione>" & vbCr & ""
xmlStr &= "<lista_firme>" & vbCr & ""
xmlStr &= "</lista_firme>" & vbCr & ""
xmlStr &= "</documento>" & vbCr & ""
xmlStr &= "</insert_request>"

Sapreste dirmi i passi necessari???

Ho provato la seguente strada:

Dim request As HttpWebRequest = Nothing
Dim uri As Uri = New Uri(url)
request = WebRequest.Create(uri)
request.ContentType = "text/xml"
request.Method = "POST"

Dim XMLRequest As New System.Xml.XmlDocument
XMLRequest.LoadXml(xmlStr)
'XMLRequest.Save("C:\Documents and Settings\Desktop\str.xml")
XMLRequest.Save(request.GetRequestStream)
request.GetRequestStream.Close()

Dim writeStream = request.GetRequestStream()

Dim response = request.GetResponse()

ma ottengo l'errore "System.Net.WebException the remote server returned an error: (500) Internal Server Error" e non capisco a cosa sia dovuto.

E' sbagliato il modo in cui passo i dati? E' sbagliata la chiamata al server?

Ditemi!!!!