Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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...
Carregando comentários...