Ciao a tutti,
ho la necessità di scaricare dal web un file zip, ma ci sono delle difficoltà in più.
io non ho il nome del file che scarico in quanto viene generato al volo quando si inserisce l'url che punta ad una pagina .jsp e questa per risposta letti i parametri passati ti restituisce il file zip.
avevo fatto una cosa del genere:
string HttpPost(string uri, string parameters)
{
WebRequest webRequest = WebRequest.Create(uri);
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(parameters);
Stream os = null;
try
{
webRequest.ContentLength = bytes.Length;
os = webRequest.GetRequestStream();
os.Write(bytes, 0, bytes.Length);
MessageBox.Show(os.CanWrite.ToString());
}
catch (WebException ex)
{
MessageBox.Show(ex.Message, "HttpPost: Request error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (os != null)
{
os.Close();
}
}
try
{
WebResponse webResponse = webRequest.GetResponse();
if (webResponse == null) { return null; }
string path = "C:\\archivio.zip";
Stream stream = webResponse.GetResponseStream();
byte[] inBuffer = ReadFully(stream, 32768);
FileStream fstream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
fstream.Write(inBuffer, 0, inBuffer.Length - 1);
fstream.Close();
stream.Close();
return "OK";
}catch(Exc....................................){
...............
}
Questo codice mi scarica il file che dovrebbe essere (il numero di bytes è corretto) ma quando vado a decomprimerlo con winrar o winzip mi da errore dicendo che è corrotto.
mi potete dare qualche info in +?
Grazie