首页 > 解决方案 > 如何使用网络服务拍摄图像?

问题描述

我有一个在线数据库,我把图像放在那里。我使用 fetch 来调用 web 服务,但由于图像,它给了我一个错误。如何处理?

 fetch('url', {
       method: 'POST',
       headers: new Headers({
        Accept: 'application/json',
        Content-Type': 'application/json', // <-- Specifying the Content-Type
       }),
      })
      .then((response) => { 
         console.log(response);
        });

这是我的收获。正如我所说,当调用网络服务时,由于没有获取图像,它给了我一个错误

我在 web 服务中的序列化器是这样的:

public class Data
    {
        public string Ref { get; set; }

        public int CharacterID { get; set; }
        public string CharacterName { get; set; }
        public string Regions { get; set; }
        public string Rarity { get; set; }
        public char Role { get; set; }
        public string Origin { get; set; }
        public int Power { get; set; }
        public string Tag1 { get; set; }
        public string Tag2 { get; set; }
        public string Tag3 { get; set; }
        public string RareMaterial { get; set; }
        public string EpicMaterial { get; set; }
        public string UniqueMaterial { get; set; }
        public string Image { get; set; }


        [JsonConverter(typeof(ImageConverter))]
        public Image Images { get; set; }

    }

    public class ImageConverter : JsonConverter
    {
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var base64 = (string)reader.Value;
            // convert base64 to byte array, put that into memory stream and feed to image
            return Image.FromStream(new MemoryStream(Convert.FromBase64String(base64)));
        }

        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var image = (Image)value;
            // save to memory stream in original format
            var ms = new MemoryStream();
            image.Save(ms, image.RawFormat);
            byte[] imageBytes = ms.ToArray();
            // write byte array, will be converted to base64 by JSON.NET
            writer.WriteValue(imageBytes);
        }

        public override bool CanConvert(Type objectType)
        {
            return objectType == typeof(Image);
        }
    }

如何在 react-native 中反序列化它?

标签: react-native

解决方案


推荐阅读