Salve a tutti.
Vorrei inviare dei dati dal programma client ad una pagina web,come si puo' fare?
Grazie.
Salve a tutti.
Vorrei inviare dei dati dal programma client ad una pagina web,come si puo' fare?
Grazie.
potresti usare un webservice ma non so dirti se è la soluzione migliore
La passera non dura perchè Sypher la cattura!
"No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"
Non vorrei usare un webservice(sarebbe sovradimensionato),vorrei solo inviare stringhe di testo ad una pagina.
ho letto che le socket fanno questo genere di lavoro ma non riesco a capire come.
Ma la pagina dovrebbe ricevere queste stringhe di testo e farci qualcosa. Magari esiste anche un altro modo piu' o meno macchinoso (forse anche caricare un browser nell'applicazione e passare sotto forma di parametri get o post le stringhe di testo) ma mi sembra che il consiglio del webservice sia azzeccato.Originariamente inviato da giuseppe500
Non vorrei usare un webservice(sarebbe sovradimensionato),vorrei solo inviare stringhe di testo ad una pagina.
Saluti a tutti
Riccardo
ok posto il codice :
IPHostEntry IPHost = Dns.Resolve("localhost");
MessageBox.Show(IPHost.HostName);
string []aliases = IPHost.Aliases;
IPAddress[] addr = IPHost.AddressList;
MessageBox.Show(addr[0].ToString());
EndPoint ep = new IPEndPoint(addr[0],80);
Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Strea m,ProtocolType.Tcp);
sock.Connect(ep);
if(sock.Connected)
MessageBox.Show("OK");
Encoding ASCII = Encoding.ASCII;
string Get = "prova.php?test";
Byte[] ByteGet = ASCII.GetBytes(Get);
Byte[] RecvBytes = new Byte[256];
sock.Send(ByteGet, ByteGet.Length, 0);
sock.Shutdown(SocketShutdown.Both);
sock.Close();
il problema è che non riesco a connettermi in localhost su di una data pagina ad es:
IPHostEntry IPHost = Dns.Resolve("localhost/prova.php");
non funziona perchè?
vorrei passare dati a una pagina php in remoto
up
ci sono riuscito con l'aiuto del forum, posto il codice c#
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class MyClient
{
public static void Main()
{
//scelgo l'host
IPHostEntry IPHost = Dns.Resolve("localhost");
Console.WriteLine(IPHost.HostName);
string []aliases = IPHost.Aliases;
IPAddress[] addr = IPHost.AddressList;
Console.WriteLine(addr[0]);
EndPoint ep = new IPEndPoint(addr[0],80);
Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Strea m,ProtocolType.Tcp);
sock.Connect(ep);
if(sock.Connected)
Console.WriteLine("OK");
Encoding ASCII = Encoding.ASCII;
string Get=@"&user=gg";
string protocol="HTTP/1.0" ;
string br="\r\n" ;
string target="/phpinfo.php" ;
string host="localhost";
string req_body="" ;
req_body+="&user=giugioxxxxxx" ;
string headers="POST "+target+" "+protocol+br ;
headers+="Content-Type: application/x-www-form-urlencoded"+br ;
headers+="Content-Length: "+req_body.Length+br+br ;
Byte[] ByteGet = ASCII.GetBytes(headers+req_body);
Byte[] RecvBytes = new Byte[2256];
sock.Send(ByteGet, ByteGet.Length, 0);
Int32 bytes = sock.Receive(RecvBytes,0, RecvBytes.Length, 0);
string strRetPage="";
strRetPage = ASCII.GetString(RecvBytes, 0,RecvBytes.Length);
Console.WriteLine(strRetPage );
strRetPage = null;
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
while (bytes > 0)
{
bytes = sock.Receive(RecvBytes,0, RecvBytes.Length,SocketFlags.Peek);
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
Console.WriteLine(strRetPage );
}
sock.Shutdown(SocketShutdown.Both);
sock.Close();
}
}
il codice funziona in locale ma non in remoto:
se eseguo il seguente codice cambiando l'host con un host sul web non funziona:
IPHostEntry IPHost = Dns.Resolve("www.creazione.com");
Console.WriteLine(IPHost.HostName);
string []aliases = IPHost.Aliases;
IPAddress[] addr = IPHost.AddressList;
Console.WriteLine(addr[0]);
EndPoint ep = new IPEndPoint(addr[0],80);
Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Strea m,ProtocolType.Tcp);
sock.Connect(ep);
if(sock.Connected)
Console.WriteLine("OK");
Encoding ASCII = Encoding.ASCII;
string Get=@"&user=gg";
string protocol="HTTP/1.0" ;
string br="\r\n" ;
string target="/phpinfo.php" ;
string req_body="" ;
// req_body+="&user=giugioxxxxxx" ;
string headers="POST "+target+" "+protocol+br ;
headers+="Content-Type: application/x-www-form-urlencoded"+br ;
headers+="Content-Length: "+req_body.Length+br+br ;
Byte[] ByteGet = ASCII.GetBytes(headers+req_body);
Byte[] RecvBytes = new Byte[2256];
sock.Send(ByteGet, ByteGet.Length, 0);
Int32 bytes = sock.Receive(RecvBytes,0, RecvBytes.Length, 0);
string strRetPage="";
strRetPage = ASCII.GetString(RecvBytes, 0,RecvBytes.Length);
Console.WriteLine(strRetPage );
strRetPage = null;
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
while (bytes > 0)
{
bytes = sock.Receive(RecvBytes,0, RecvBytes.Length,SocketFlags.Peek);
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
Console.WriteLine(strRetPage );
}
sock.Shutdown(SocketShutdown.Both);
sock.Close();
}
mi da errore di pagina non trovata .Da browser se vado all'indirizzo www.creazione.com/phpinfo.php accede alla pagina ma da codice no!!.Perchè?
l'unica differenza è che sul locale ho apache e sul server ho iis puo' essere quello il problema?