J'envoie actuellement des données d'image sous la forme d'un tableau d'octets. Cependant, je souhaite l'envoyer en tant que chaîne ASCII. Comment puis-je envoyer une chaîne ASCII du client au serveur en utilisant HTTP POST dans C#?Envoyer une chaîne ASCII à l'aide de HTTP Post
HttpWebRequest webRequest = null;
webRequest = (HttpWebRequest)HttpWebRequest.Create("http://192.168.1.2/");
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
//Assume here, I got the ascii string from image using ImageToBase64() function.
byte[] buffer = encoding.GetBytes(myString)); //assume myString is an ASCII string
// Set content length of our data
webRequest.ContentLength = buffer.Length;
webStream = webRequest.GetRequestStream();
webStream.Write(buffer, 0, buffer.Length); //This is the only way I know how to send data -using byte array "buffer". But i wan to send data over as ASCII string "myString". How?
webStream.Close();
//I used this function to turn an image into ASCII string to be sent
public string ImageToBase64(Image image,
System.Drawing.Imaging.ImageFormat format)
{
using (MemoryStream ms = new MemoryStream())
{
// Convert Image to byte[]
image.Save(ms, format);
byte[] imageBytes = ms.ToArray();
// Convert byte[] to Base64 String
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
[WebClient.UploadValues] (http://msdn.microsoft.com/en-us/library/9w7b4fz7.aspx) est encore mieux pour ' "application/x-www-form-urlencoded"' charge utile car il définit l'en-tête et fait l'encodage de l'URL pour vous. – dtb
@dtb: Bon conseil à savoir. Merci. – tidwall
La chose est que j'ai besoin d'obtenir une réponse du serveur. Par conséquent, j'ai utilisé WebReuqest. J'ai reçu l'instruction d'utiliser HTTP Post et d'envoyer une chaîne ASCII en utilisant HTTP Post, alors comment cela peut-il être fait? Que devrait être le "ContentType"? Je ne suis pas familier avec ce qu'est réellement ContentType donc je mets simplement "application/x-www-form-urlencoded" – Robogal