C# 以Base64字符串发送图像并通过kSoap在webservice中接收

C# 以Base64字符串发送图像并通过kSoap在webservice中接收,c#,android,web-services,ksoap,C#,Android,Web Services,Ksoap,我正在使用KSOAP向Web服务发送一个字节[]和3个字符串的图像,但它对我不起作用,我不确定我错在哪里,从Android发送图像时,在接收端,我将代码放在这里,请检查一下 下面是我如何在客户端(Android)将图像转换为字节[] 下面是我通过Ksoap将其发送到webservice的代码 这是我收到这个soap信封的webMethod [WebMethod] public String PutFile(String Name, String Email, String Pictu

我正在使用KSOAP向Web服务发送一个字节[]和3个字符串的图像,但它对我不起作用,我不确定我错在哪里,从Android发送图像时,在接收端,我将代码放在这里,请检查一下 下面是我如何在客户端(Android)将图像转换为字节[]

下面是我通过Ksoap将其发送到webservice的代码

这是我收到这个soap信封的webMethod

  [WebMethod]
    public String PutFile(String Name, String Email, String Picture, String Date)
        {

String PictureByteString = Picture;
Image imgFromString = SaveByteArrayAsImage(PictureByteString);
DateTime.Now.ToShortDateString() + ".jpg"));
string serverpath = Server.MapPath("~/" + Email + "-" + DateTime.Now.ToShortDateString());
imgFromString.Save(serverpath, System.Drawing.Imaging.ImageFormat.Jpeg);
String Path = serverpath + ".Jpeg";


            return Name;
        }

private Image SaveByteArrayAsImage(string base64String)
{
byte[] bytes = Convert.FromBase64String(base64String);

image;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}

return image;

}
当我向webservice发送数据时,android LogCat会显示给我

java.io.IOException: HTTP request failed, HTTP status: 500
我想是的,这意味着我发送到webservice的数据类型不正确,所以我尝试在webmethod中将
字符串Picture
转换为
字节[]Picture
,但结果相同。我无法找出我错在哪里

更新: 现在,以Base64字符串和java异常发送图像已经消失,但webmethod仍然没有将Base64字符串转换为图像…

我就是这样做的。
传递给函数的参数是Base64字符串

public string SendImage(string data)
    {
        byte[] myarray = Convert.FromBase64String(data);
        MemoryStream memStream = new MemoryStream(myarray);
        Image myimage = Image.FromStream(memStream);
        myimage.Save("G:\\image.png", ImageFormat.Png);
        return "succeeded";
    }

这对我来说非常有效,希望能有所帮助。

500意味着服务器未连接您需要先尝试而不传递映像,如果可以,然后传递映像,如果以base64格式发送映像,则传递映像比byte[]更好。让我在不传递映像的情况下尝试…@PankajAndroid:我删除了这一行“new MarshallBase64()。register(信封);“并添加了“String encoded=Base64.encodeToString(byteArray,Base64.DEFAULT);”以转换字节[]在b ase64字符串中,异常已消失,webmethod正在正确获取数据,但它没有将字符串转换回图像..请参阅问题中的更新我一年前解决了此问题:-P但感谢您的输入,它可能会帮助许多其他人…哈哈哈,我认为我太晚了xD刚刚进入此领域..顺便说一句,你知道怎么做吗以“C#image”而不是字节数组的形式从.Net Webservice向android发送图像,反之亦然??!
java.io.IOException: HTTP request failed, HTTP status: 500
public string SendImage(string data)
    {
        byte[] myarray = Convert.FromBase64String(data);
        MemoryStream memStream = new MemoryStream(myarray);
        Image myimage = Image.FromStream(memStream);
        myimage.Save("G:\\image.png", ImageFormat.Png);
        return "succeeded";
    }