【问题标题】:How to send a data to a web server from Android如何从 Android 向 Web 服务器发送数据
【发布时间】:2011-04-14 16:03:41
【问题描述】:

我想使用 android 将数据发送到我的 php 页面。我该怎么做?

【问题讨论】:

    标签: php android


    【解决方案1】:

    Android API 有一组函数允许您使用 HTTP 请求、POST、GET 等。 在本例中,我将提供一组代码,允许您使用 POST 请求更新服务器中文件的内容。

    我们的服务器端代码将非常简单,它将用 PHP 编写。 代码将从 post 请求中获取数据,使用数据更新文件并加载此文件以在浏览器中显示。

    在服务器“mypage.php”上创建PHP页面,php页面的代码是:-

     <?php
    
     $filename="datatest.html";
     file_put_contents($filename,$_POST["fname"]."<br />",FILE_APPEND);
     file_put_contents($filename,$_POST["fphone"]."<br />",FILE_APPEND);
     file_put_contents($filename,$_POST["femail"]."<br />",FILE_APPEND);
     file_put_contents($filename,$_POST["fcomment"]."<br />",FILE_APPEND);
     $msg=file_get_contents($filename);
     echo $msg; ?>
    

    创建 Android 项目并在 HTTPExample.java 中编写以下代码

               HttpClient httpclient = new DefaultHttpClient();
           HttpPost httppost = new HttpPost("http://example.com/mypage.php");
             try {
           List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
    
           nameValuePairs.add(new BasicNameValuePair("fname", "vinod"));
           nameValuePairs.add(new BasicNameValuePair("fphone", "1234567890"));
           nameValuePairs.add(new BasicNameValuePair("femail", "abc@gmail.com"));
           nameValuePairs.add(new BasicNameValuePair("fcomment", "Help"));
           httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
           httpclient.execute(httppost);
    
         } catch (ClientProtocolException e) {
             // TODO Auto-generated catch block
         } catch (IOException e) {
             // TODO Auto-generated catch block
         }
    

    在 AndroidManifest.xml 中添加权限

        <uses-permission android:name="android.permission.INTERNET"/>
    

    【讨论】:

    • 我有你的代码有问题不幸关闭了我已经完全插入互联网许可...你可以在你的代码中添加更多...为什么我得到错误和值是不去服务器....
    【解决方案2】:

    您可以使用AndroidHttpClient 发出 GET 或 POST 请求:

    1. 创建一个AndroidHttpClient 来执行您的请求。
    2. 创建HttpGet 或HttpPost 请求。
    3. 使用setEntity 和setHeader 方法填充请求。
    4. 对您的请求使用客户端上的execute 方法之一。

    This answer 似乎是一个相当完整的代码示例。

    【讨论】:

      【解决方案3】:

      这里给出了一个 HTTP POST 请求的简单示例:

      try {
          // Construct data
          String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
          data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
      
          // Send data
          URL url = new URL("http://hostname:80/cgi");
          URLConnection conn = url.openConnection();
          conn.setDoOutput(true);
          OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
          wr.write(data);
          wr.flush();
      
          // Get the response
          BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
          String line;
          while ((line = rd.readLine()) != null) {
              // Process line...
          }
          wr.close();
          rd.close();
      } catch (Exception e) {
      }
      

      【讨论】:

        猜你喜欢
        • 2011-12-21
        • 2021-09-08
        • 1970-01-01
        • 2016-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-09
        相关资源
        最近更新 更多