如何发送图像base64服务器windows phone 8.1
本文关键字:phone windows 服务器 何发送 图像 base64 | 更新日期: 2023-09-27 18:14:50
我正在用c#开发一个windows phone 8.1上的应用程序,可以拍摄照片并通过post请求将其发送到服务器(base64)。
所以我的问题是,我找不到一个方法,仍然为包括我的图像base64在我的请求体,并将其发送到我的服务器。
private async void validPicture_Click(object sender, RoutedEventArgs e)
{
Encode("ms-appx:///xx/xxx.jpg");
try
{
var client = new Windows.Web.Http.HttpClient();
var uri = new Uri("http://x.x.x.x:x/picture/");
string pathBase64 = Encode("ms-appx:///xx/xxx.jpg").ToString();
Dictionary<string, string> pairs = new Dictionary<string, string>();
pairs.Add("type", "recognition");
HttpFormUrlEncodedContent formContent = new HttpFormUrlEncodedContent(pairs);
Windows.Web.Http.HttpResponseMessage response = await client.PostAsync(uri, formContent);
string content = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
}
}
catch (Exception eu)
{
}
}
如果您有任何问题或需要更多信息,请告诉我。
感谢您的宝贵时间。
首先你必须从存储器中读取图像文件并将字节转换为base64字符串。
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri(PHOTO_PATH));
byte[] rawBytes;
using (Stream stream = await file.OpenStreamForReadAsync())
{
rawBytes = new byte[stream.Length];
await stream.ReadAsync(rawBytes, 0, rawBytes.Length);
}
string base64Content = Convert.ToBase64String(rawBytes);
然后你必须用那个内容发出请求。我不知道你的服务器是如何接受请求的,但这里有一个发送请求的例子,在内容字符串。
var httpClient = new Windows.Web.Http.HttpClient();
IBuffer content = CryptographicBuffer.ConvertStringToBinary(base64Content, BinaryStringEncoding.Utf8);
var request = new HttpBufferContent(content);
HttpResponseMessage response = await httpClient.PostAsync(new Uri(SERVER_URL), request);