Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.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
文件下载Web服务Android客户端_Android_Web Services_Axis2 - Fatal编程技术网

文件下载Web服务Android客户端

文件下载Web服务Android客户端,android,web-services,axis2,Android,Web Services,Axis2,我已经编写了一个接受soap请求的axis2 web服务 Web服务部件: 带有datahandler的普通java客户机工作正常。不过,我想编写一个android客户端来检索数据。我知道android没有javax.activation.DataHandler实现。在Axis2中,我尝试使服务器能够接收http请求,以充当restful服务 services.xml配置 最后我收到了一些数据,但它们与实际数据不一致。我在哪方面犯了错误 public DataHandler getFile(S

我已经编写了一个接受soap请求的axis2 web服务

Web服务部件:

带有datahandler的普通java客户机工作正常。不过,我想编写一个android客户端来检索数据。我知道android没有javax.activation.DataHandler实现。在Axis2中,我尝试使服务器能够接收http请求,以充当restful服务

services.xml配置

最后我收到了一些数据,但它们与实际数据不一致。我在哪方面犯了错误

 public DataHandler getFile(String fileName)
  {
    FileDataSource dataSource = new FileDataSource(writePath + "/" + fileName);
    DataHandler fileDataHandler = new DataHandler(dataSource);
    return fileDataHandler;
  }
<service name="WsFileTransfer">
<description>
    Please Type your service description here
</description>
<messageReceivers>
    <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
        class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
    <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
        class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
<parameter name="ServiceClass" locked="false">com.company.project.web.service.WsFileTransfer
</parameter>
<operation name="getFile">

    <parameter name="RESTMethod">GET</parameter>

    <parameter name="RESTLocation">getFile/{fileName}</parameter>

</operation>
private void getFile(String fileName) throws JSONException, FileNotFoundException {


    client.getParams().setParameter(ClientPNames.COOKIE_POLICY,
            CookiePolicy.RFC_2109);
    StringEntity tmp = null;

    httpGet = new HttpGet(EPR + "getFile?fileName=" + fileName);
    httpGet.setHeader("Content-Type", CONTENT_TYPE);


    FileOutputStream stream = null;
    InputStream readStream = null;
    try {
        response = client.execute(httpGet);


        HttpEntity returnEntity = response.getEntity();
        readStream = returnEntity.getContent();

    } catch (ClientProtocolException e) {

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

        e.printStackTrace();
    }

    String filePath = Environment.getExternalStorageDirectory().getPath()
    + System.getProperty("file.separator") + fileName;
    File file = new File(filePath);
    stream = new FileOutputStream(file);


    try {
        while(readStream.read() >= 0){
        stream.write(readStream.read());
        }
    } catch (IOException e) {

        e.printStackTrace();
    }
    finally{

        if(stream != null)
            try {
                stream.close();
            } catch (IOException e) {

                e.printStackTrace();
            }
        if(readStream != null){
            try {
                readStream.close();
            } catch (IOException e) {

                e.printStackTrace();
            }
        }
    }

}