net method examples example ejemplos downloaddata c# .net header webclient

c# - method - WebClient establece encabezados



webclient examples c# (4)

Parece que no puede establecer el tipo de contenido con el método WebClient.UploadValues. Puede establecer Content-type con el método WebClient.UploadData

Usa algo como,

Client.Headers["Content-Type"] = "application/json"; Client.UploadData("http://www.imageshack.us/upload_api.php", "POST", Encoding.Default.GetBytes("{/"Data/": /"Test/"}"));

¿Cómo puedo configurar un encabezado en la clase webClient ? Lo intenté:

client.Headers["Content-Type"] = "image/jpeg";

eso arroja una WebException

Mi código:

WebClient client = new WebClient(); client.Headers.Set("Content-Type", "image/png"); client.Headers.Set("Content-Length", length); client.Headers.Add("Slug", name); NameValueCollection nvc = new NameValueCollection(); nvc.Add("file", FileContents); Byte[] data = client.UploadValues(url, nvc); string res = Encoding.ASCII.GetString(data); Response.Write(res);


Si el encabezado ya existe:

client.Headers.Set("Content-Type", "image/jpeg");

si es un nuevo encabezado:

client.Headers.Add("Content-Type", "image/jpeg");

Además, existe la posibilidad de que reciba un error porque está tratando de configurar los encabezados demasiado tarde. Publique su excepción para que podamos informarle.

Actualizar

Parece que hay algunas restricciones raras en el encabezado "Content-Type" con la clase WebClient. Mire para usar el cliente. Métodos de descarga (DownloadData, DownloadFile, etc ...)

Vea si funciona el método "UploadFile" en webclient en lugar de hacerlo manualmente. Devuelve el cuerpo de reposo byte [].

Si continúa teniendo problemas con WebClient, intente justificar el uso de una vieja simple HttpRequest / HttpWebRequest.


¿Has probado esta sintaxis: client.Headers.Add("Content-Type", "image/jpeg");

¿Cuál es tu rastro de pila? ¿En qué punto estás configurando esto? ¿Y en qué versión de IIS / OS se está ejecutando?


No puede cambiar el tipo de contenido si usa el método UploadValues, debe ser application / x-www-form-urlencoded, consulte el código fuente de webclient