关于安卓调用C#的WebService上传图片有关问题(不使用ksoap2)

关于安卓调用C#的WebService上传图片问题(不使用ksoap2)
小弟初学安卓开发。最近需要做一个图片上传的功能。
我是用java开发安卓,调用C#的WebService。在网上找到一大堆资料,几乎全部是用ksoap2包的。
请注意,我想做的是不用ksoap包的。
我现在的方法是从android端用读取到要上传的图片,用Base64编码成字节流的字符串,通过调用webservice把该字符串作为参数传到服务器端,服务端解码该字符串,最后保存到相应的路径下。整个上传过程的关键就是以字节流的字符串进行数据传递。
功能代码如下:

WebService:

public string uploadImage(string filename, string image)
        {
            FileStream fs = null;
            try
            {
                string toDir = "E:\\C# Project\\Dev\\GPRSDataIn\\GPRSDataIn\\Images";
                fs = new FileStream(filename, FileMode.Create);

                byte[] buffer = Encoding.UTF8.GetBytes(image);
                fs.Write(buffer, 0, buffer.Length);
                fs.Flush();
                fs.Close();
                return "上传图片成功!" + "图片路径为:" + toDir;
            }
            catch (Exception e)
            {

            }
            return "上传图片失败!";
        }

安卓端:调用WebService方法

public class UploadUtil {

private static HttpConnSoap Soap = new HttpConnSoap();
public static void uploadImage(String filename, String image) {
ArrayList<String>arrayList=new ArrayList<String>();
ArrayList<String>brrayList=new ArrayList<String>();

arrayList.clear();
brrayList.clear();

arrayList.add("filename");
arrayList.add("image");
brrayList.add(filename);
brrayList.add(image);

Soap.GetWebServre("uploadImage", arrayList, brrayList);
}
}



public class HttpConnSoap {
/**
 * 获取返回的InputStream,为了增强通用性,在方法内不对其进行解析。
 * 
 * @param methodName
 *            webservice方法名
 * @param Parameters
 *            webservice方法对应的参数名
 * @param ParValues
 *            webservice方法中参数对应的值
 * @return 未解析的InputStream
 */
public InputStream GetWebServre(String methodName, ArrayList<String> Parameters, ArrayList<String> ParValues) {
// 指定URL地址,我这里使用的是常量。
String ServerUrl = "http://www.bsri.com.cn:99/ws3/Service1.asmx";

// soapAction = 命名空间 + 方法名
String soapAction = "http://tempuri.org/" + methodName;

// 拼凑requestData
String soap = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
+ "<soap:Body />";
String tps,vps,ts;
String mreakString = "";
mreakString = "<" + methodName + " xmlns=\"http://tempuri.org/\">";

        for (int i = 0; i < Parameters.size(); i++)
        {
            tps = Parameters.get (i).toString();
            //设置该方法的参数为.net webService中的参数名称
            vps = ParValues.get (i).toString();
            ts = new String("<" + tps + ">" + vps + "</" + tps + ">");
            mreakString = mreakString + ts;
        }
mreakString = mreakString + "</" + methodName + ">";
String soap2 = "</soap:Envelope>";
String requestData = soap + mreakString + soap2;
// 其上所有的数据都是在拼凑requestData,即向服务器发送的数据