我用的是ksoap2-android-assembly-2.4-jar-with-dependencies.jar 如何接受或发送低么附件格式的图片

解决方案 »

  1.   

    神马意思啊?带附件的webservice?
    Android作为客户端发一段发送byte数据的代码给你瞅瞅,希望对你有帮助:
    public class ksoap2webservice {
    private static final String URL = "http://192.168.1.1/WebSite/Service.asmx";
    private static final String NAMESPACE = "http://tempuri.org/";
    private static final String METHOD_NAME = "Test";
    private static final String SOAP_ACTION = "http://tempuri.org/Test";

    public static String callWebService() throws Exception{

    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    request.addProperty("strIn", "123456");
    byte []byValue = new byte[]{0,1,2,3,'a', 'b'};
    String strByte = Base64.encode(byValue);
    request.addProperty("request", strByte);
                
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11 );
    envelope.dotNet  = true;
    envelope.setOutputSoapObject(request);
    new MarshalBase64().register(envelope);

    //发出请求
    AndroidHttpTransport aht = new AndroidHttpTransport(URL);
    //aht.debug = true;

    aht.call(SOAP_ACTION, envelope); 

    SoapObject soResult = (SoapObject)envelope.bodyIn;
    SoapPrimitive spRespose = (SoapPrimitive)soResult.getProperty("respose"); 
    String getReturn = new String(Base64.decode(spRespose.toString()), "utf-8");

    return getReturn;
    }
    }服务器端使用的是C#搞的一个简单WebService。Test方法如下:
        [WebMethod]
        public int Test(string strIn,byte[] request, out byte[] respose)
        {
            string s = "cccca连111接222222";
            respose = System.Text.Encoding.UTF8.GetBytes(s);        return respose.Length;
        }其实图片神马的都可以读取到byte数组中来。
      

  2.   

    如果你要发送二进制的东西,那就要先转成base64编码,然后才能通过webservice传递。
      

  3.   

    谢谢各位了!转成base64可以解决但是服务器那边是用的.net用的是soap加入dime附件的形式发送图片这个就比较难搞了!估计用ksoap可能没办法可以解决。还是谢谢各位了。