Как подключить веб-сервер с Android Mobile - PullRequest
0 голосов
/ 09 декабря 2010

мое приложение хранит некоторые изображения, которые я хочу сохранить в веб-сервере с моего мобильного телефона Android

Ответы [ 2 ]

0 голосов
/ 09 декабря 2010

Вы должны отправить данные в виде потока вывода в приложении Android и прочитать их в сервлете как поток ввода из объекта запроса.

0 голосов
/ 09 декабря 2010

Используйте HttpClient для подключения к вашему веб-серверу с клиента. Я сделал это так, чтобы подключиться к службе PHP:

/**
 * Transmits a file from the local filesystem to a web-server
 * @param fileName the local file to transmit
 * @param params the remote parameters for the php script
 * @return the server response as a String
 */
public String httpUploadFile(String fileName, String params) {
    if(fileName==null) {
        return "ERROR file is null";
    } else {
        DDLog.i(TAG, "Initiating httpUpload for file "+fileName);
        HttpClient httpClient = new DefaultHttpClient();
        httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, new Integer(300000)); // 300 seconds -> 5 min
        httpClient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);

        String url = this.baseURL + "?" + params;
        HttpPost httpPost = new HttpPost(url);

        MultipartEntity mpEntity = new MultipartEntity();
        File file = new File(fileName);
        double fileBytes = file.length();
        DecimalFormat decimalFormat = new DecimalFormat("0.000");
        Log.i(TAG, "httpUpload file: "+fileName+" with "+file.length()+" bytes; "+decimalFormat.format(fileBytes/1024)+" kb; "+decimalFormat.format(fileBytes/1048576)+" mb");

        FileBody bodyFile = new FileBody(file);
        mpEntity.addPart("pic", bodyFile);

        httpPost.setEntity(mpEntity);

        HttpResponse httpResponse = null;
        HttpEntity responseEntity = null;
        String response = "";
        try {
            httpResponse = httpClient.execute(httpPost);
            responseEntity = httpResponse.getEntity();
            response = EntityUtils.toString(responseEntity);

        } catch (SocketException e) {
            e.printStackTrace();
            DDLog.e(TAG, e.getMessage(), e);
            response = "SOCKET EXCEPTION " + e.getMessage();

        } catch (SocketTimeoutException e) {
            e.printStackTrace();
            DDLog.e(TAG, e.getMessage(), e);
            response = "SOCKET TIMEOUT";

        } catch (ClientProtocolException e) {
            e.printStackTrace();
            DDLog.e(TAG, e.getMessage(), e);
        } catch (IOException e) {
            e.printStackTrace();
            DDLog.e(TAG, e.getMessage(), e);
        }

        DDLog.i(TAG, "HttpResponse: "+response);

        return response;
    }
}

Но вы действительно должны предоставить больше информации о том, как вы собираетесь это сделать, например какую технологию вы используете на своем веб-сервере

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...