如何让安卓应用程序通过互联网与网络服务器进行通信


How can I make an Android app communicate with a web server over the internet?

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

我还熟悉PHP和网络托管。

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

你能告诉我如何实现这一点吗?或者我应该研究哪些主题?此外,我可以使用哪些脚本在web服务器上进行处理?特别是,我可以使用PHP还是Java?

谢谢!

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";
    }
?> 

通常我们使用http连接,您可以在张贴参数,如需进一步参考,请参阅链接

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

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