Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中使用Web服务和Ksoap2获取图像_Android_Asp.net_Web Services_Ksoap2 - Fatal编程技术网

在android中使用Web服务和Ksoap2获取图像

在android中使用Web服务和Ksoap2获取图像,android,asp.net,web-services,ksoap2,Android,Asp.net,Web Services,Ksoap2,使用Web服务和Ksoap2获取图像 当一个人在智能手机的图库中选择一张图片时,我使用.NETWeb服务上传图像 为了实现这一点,我使用ksoap2 在我的服务中,我发送一个字符串作为参数,我的代码如下: File myFile = new File(imagepath); Log.d(TAG, "myFile: " + myFile); Request.addProperty("bytes", myFile); SoapObject Request = new SoapObject(

使用Web服务和Ksoap2获取图像

当一个人在智能手机的图库中选择一张图片时,我使用.NETWeb服务上传图像

为了实现这一点,我使用ksoap2

在我的服务中,我发送一个字符串作为参数,我的代码如下:

File myFile = new File(imagepath);
Log.d(TAG, "myFile: " + myFile);
Request.addProperty("bytes", myFile);

SoapObject Request = new SoapObject(
        WSDL_TARGET_NAMESPACE, OPERATION_NAME);


SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
        SoapEnvelope.VER11);


envelope.dotNet = true;
envelope.setOutputSoapObject(Request);


HttpTransportSE androidHttpTransport = new HttpTransportSE(
        SOAP_ADDRESS);
androidHttpTransport.debug = true;

try {

    androidHttpTransport.call(SOAP_ACTION, envelope);

    SoapPrimitive resultString = (SoapPrimitive) envelope
            .getResponse();

    Log.d(TAG, "form webservice: "
            + resultString);

} catch (Exception e) {
    e.printStackTrace();
}
不幸的是,我的向量显示为空,并且我在LogCat中不断得到一个解析错误:

09-25 14:29:58.490: TAG(10919): 
myFile: /storage/emulated/0/DCIM/Camera/20140923_084731.jpg

09-25 14:29:58.530: W/System.err(10919): 
java.lang.RuntimeException: Cannot serialize: /storage/emulated/0/DCIM/Camera/20140923_084731.jpg

09-25 14:29:58.530: W/System.err(10919):         
at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:708)

09-25 14:29:58.530: W/System.err(10919):         
at org.ksoap2.serialization.SoapSerializationEnvelope.writeProperty(SoapSerializationEnvelope.java:692)

09-25 14:29:58.530: W/System.err(10919):         
at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:661)

09-25 14:29:58.530: W/System.err(10919):         
at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:645)

09-25 14:29:58.530: W/System.err(10919):         
at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:702)

09-25 14:29:58.530: W/System.err(10919):         
at org.ksoap2.serialization.SoapSerializationEnvelope.writeBody(SoapSerializationEnvelope.java:618)

09-25 14:29:58.530: W/System.err(10919):         
at org.ksoap2.SoapEnvelope.write(SoapEnvelope.java:198)

09-25 14:29:58.530: W/System.err(10919):         
at org.ksoap2.transport.Transport.createRequestData(Transport.java:111)

09-25 14:29:58.530: W/System.err(10919):         
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:119)

09-25 14:29:58.530: W/System.err(10919):         
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:95)

09-25 14:29:58.530: W/System.err(10919):         
at com.up.upload.MainActivity$2.run(MainActivity.java:237)

09-25 14:29:58.530: W/System.err(10919):         
at java.lang.Thread.run(Thread.java:841)
我想知道是否有人能帮我解决一个问题,你有什么建议

提前感谢。

试试这个:

public void UploadImage(String image, String imageName) {

    String lStr = imagepath;

    File myFile = new File(imagepath);
    Log.d(TAG, "myFile: " + myFile);

    SoapObject Request = new SoapObject(WSDL_TARGET_NAMESPACE,
            OPERATION_NAME);

    byte[] bytearray = null;
    try {
        FileInputStream is = new FileInputStream(mFile);
        if (mFile != null)
            try {
                bytearray = streamToBytes(is);
            } finally {
                is.close();
            }
    } catch (Exception e) {
    }

    Request.addProperty("bytes", bytearray);

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
            SoapEnvelope.VER11);

    new MarshalBase64().register(envelope);
    envelope.dotNet = true;
    envelope.encodingStyle = "UTF-8";
    envelope.setOutputSoapObject(Request);

    HttpTransportSE androidHttpTransport = new HttpTransportSE(SOAP_ADDRESS);
    androidHttpTransport.debug = true;

    try {

        androidHttpTransport.call(SOAP_ACTION, envelope);

        SoapPrimitive resultString = (SoapPrimitive) envelope.getResponse();
        Log.d(TAG, "From webservice: " + resultString);

    } catch (Exception e) {
        e.printStackTrace();
    }
}


public static byte[] streamToBytes(InputStream is) {
    ByteArrayOutputStream os = new ByteArrayOutputStream(1024);
    byte[] buffer = new byte[1024];
    int len;
    try {
        while ((len = is.read(buffer)) >= 0) {
            os.write(buffer, 0, len);
        }
    } catch (java.io.IOException e) {
    }
    return os.toByteArray();
}


        new Thread(new Runnable() {
            public void run() {
                try {

                    String lStr = imagepath;
                    UploadImage(
                            imagepath,
                            lStr.substring(lStr.lastIndexOf("/")).replace(
                                    "/", ""));
                } catch (Exception e) {
                    e.printStackTrace();
                    Log.e(TAG, "Error..", e);
                }
            }
        }).start();

你有什么解决办法吗??