2012-02-29 134 views
3

我有一个应用程序的想法,目前正在学习Android开发。我非常熟悉创建简单的独立应用程序。如何让Android应用程序通过互联网与Web服务器通信?

我也熟悉PHP和虚拟主机。

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

你能告诉我怎样才能实现这个目标或者我应该研究哪些主题?另外,我可以使用哪些脚本在Web服务器上进行处理?特别是,我可以使用PHP或Java?

谢谢!

回答

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

通常我们用HTTP连接做到这一点,你可以通过图像中的 post数据,以备将来参考请参阅link

0

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

用于检索目的,你必须创建一个其他网络服务,将输出从那里Android应用程序可以检索图像

相关问题