如何发送图像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服务器windows phone 8.1

首先你必须从存储器中读取图像文件并将字节转换为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);