如何让Android应用程序通过互联网与Web服务器通信?

时间:2012-02-29 15:08:09

标签: php android web-services http webserver

我有一个应用程序的想法,我正在学习Android开发。我非常熟悉创建简单的独立应用程序。

我也熟悉PHP和虚拟主机。

我想做的是,让Android应用程序通过互联网向服务器发送图像,并使服务器返回已处理的图像。我不知道我是怎么做到的。

您能告诉我如何实现这一目标或我应该研究哪些主题?另外,我可以使用哪些脚本在Web服务器上进行处理?特别是,我可以使用PHP还是Java?

谢谢!

3 个答案:

答案 0 :(得分:6)

For Image Uploading
///Method Communicate with webservice an return Yes if Image uploaded else NO
String  executeMultipartPost(Bitmap bm,String image_name) {
    String resp = null;
    try {  
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        bm.compress(CompressFormat.JPEG, 75, bos);
        byte[] data = bos.toByteArray();
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost postRequest = new HttpPost("domain.com/upload_image.php");
        ByteArrayBody bab = new ByteArrayBody(data, image_name);

        MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
        reqEntity.addPart("uploaded", bab);
        reqEntity.addPart("photoCaption", new StringBody("sfsdfsdf"));
        postRequest.setEntity(reqEntity);
        HttpResponse response = httpClient.execute(postRequest);
        BufferedReader reader = new BufferedReader(new  InputStreamReader(response.getEntity().getContent(), "UTF-8"));
        String sResponse;
        StringBuilder s = new StringBuilder();
        while ((sResponse = reader.readLine()) != null) {
            s = s.append(sResponse);
        }
        resp=s.toString();
    } catch (Exception e) {
        // handle exception here
        Log.e(e.getClass().getName(), e.getMessage());
    }
    return resp;
}

//PHP Code 
<?php 

    $target = "upload/"; 

    $target = $target . basename( $_FILES['uploaded']['name']) ; 
    $ok=1; 
    if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
    {
        echo "yes";
    } 
    else {
        echo "no";
    }
?> 

答案 1 :(得分:1)

  

通常我们使用http连接,你可以传递图像   post params,有关进一步参考,请参阅link

答案 2 :(得分:0)

您必须创建一个简单的php Web服务,它接受参数作为图像字节,并处理图像并存储在服务器中。对于这个Android应用程序将使用HttpPost以字节为单位将图像数据发送到服务器。

为了检索目的,你必须创建一个其他的web服务,它将从android app可以检索图像的位置输出图像的文件名