falae galera... tudo blz??? to precisando de uma ajudinha de vcs ai...
to fazendo uma requisição para um WebService pra mandar um arquivo, e essa requisição está sendo feita em um WindowsService..
só que quando chama o método GetResponse(), da esse erro ai do titulo... já tentei de várias maneiras, mas nenhuma deu jeito até agora...
segue o código do método abaixo e como estou chamando ele...
chamada:
NameValueCollection nvc = new NameValueCollection(); nvc.Add("token", "xxxxxxxxxxxxxxxx"); nvc.Add("hash", this.GetMD5Hash(nomeArquivoZip)); nvc.Add("file", nomeArquivoZip); retorno = this.UploadFilesToRemoteUrl("http://xxx.xxx.xxx.xx/VdoGPS/upload", nvc, new String[]{ nomeArquivoZip });
Método:
public String UploadFilesToRemoteUrl(String url, NameValueCollection nvc, String[] files) { String respostaWsFetranspor = String.Empty; try { HttpWebRequest httpWebRequest2 = (HttpWebRequest)WebRequest.Create(url); httpWebRequest2.ContentType = "multipart/form-data;"; httpWebRequest2.Method = "POST"; httpWebRequest2.KeepAlive = true; httpWebRequest2.Credentials = CredentialCache.DefaultCredentials; Stream memStream = new MemoryStream(); String formdataTemplate = "Content-Disposition: form-data; name=\"{0}\";\r\n\r\n{1}"; foreach (String key in nvc.Keys) { String formitem = String.Format(formdataTemplate, key, nvc[key]); Byte[] formitembytes = Encoding.UTF8.GetBytes(formitem); memStream.Write(formitembytes, 0, formitembytes.Length); } String headerTemplate = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n Content-Type: application/octet-stream\r\n\r\n"; for (int i = 0; i < files.Length; i++) { //string header = string.Format(headerTemplate, "file" + i, files[i]); String header = String.Format(headerTemplate, "uplTheFile", files[i]); Byte[] headerbytes = Encoding.UTF8.GetBytes(header); memStream.Write(headerbytes, 0, headerbytes.Length); FileStream fileStream = new FileStream(files[i], FileMode.Open, FileAccess.Read); Byte[] buffer = new Byte[1024]; Int32 bytesRead = 0; while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0) { memStream.Write(buffer, 0, bytesRead); } fileStream.Close(); } httpWebRequest2.ContentLength = memStream.Length; Stream requestStream = httpWebRequest2.GetRequestStream(); memStream.Position = 0; byte[] tempBuffer = new byte[memStream.Length]; memStream.Read(tempBuffer, 0, tempBuffer.Length); memStream.Close(); requestStream.Write(tempBuffer, 0, tempBuffer.Length); requestStream.Close(); WebResponse webResponse2 = httpWebRequest2.GetResponse(); Stream stream2 = webResponse2.GetResponseStream(); StreamReader reader2 = new StreamReader(stream2); respostaWsFetranspor = reader2.ReadToEnd(); webResponse2.Close(); } catch (Exception e) { respostaWsFetranspor = e.Message; } return respostaWsFetranspor; }
o proposito ai é enviar um arquivo para esse webservice...