安卓app想向php段提交表单,POST方式可以吗?
有什么难点,在这里。没做过,请指教。。

解决方案 »

  1.   

    get 和post都可以,只不过get是明文的方式,浏览器上能看到后面的参数。
      

  2.   

    如果我是想做成app的形式而不是走浏览器,还可以么?有的地方别人说要用socket,有的又说不需要,额。
      

  3.   


    /**
     * Post 方式
     * @param url 网址
     * @param paramsArray 参数
     * @param values 值
     * @param charset 编码,例如:UTF-8、GBK 
     * @return
     */
    private static String postUrl(String url, String[] paramsArray, String[] values, String charset)
    {
    String returnConnection = null;
    //封装数据
        Map<String, String> parmas = new HashMap<String, String>();
        int paramsArrayLength = paramsArray.length;
        int valuesLength = values.length;
        if(paramsArrayLength == valuesLength)
        {
         for(int i=0; i<paramsArrayLength; i++)
        {
         parmas.put(paramsArray[i], values[i]);
        }
        
        DefaultHttpClient client = new DefaultHttpClient();//http客户端
        HttpPost httpPost = new HttpPost(url);
        
        ArrayList<NameValuePair> pairs = new ArrayList<NameValuePair>();
        if(parmas != null)
        {
         Set<String> keys = parmas.keySet();
            for(Iterator<String> i = keys.iterator(); i.hasNext();)
            {
             String key = (String) i.next();         
                pairs.add(new BasicNameValuePair(key, parmas.get(key)));
                //System.out.println("key = " + key + ", value = " + parmas.get(key));
            }
            try
        {
         UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(pairs, charset);
         // 将POST数据放入HTTP请求
         httpPost.setEntity(p_entity);
         // 发出实际的HTTP POST请求
         HttpResponse response = client.execute(httpPost);
         int statusCode = response.getStatusLine().getStatusCode();
         if (statusCode != HttpStatus.SC_OK)
         {
         System.out.println("错误代码:  " + statusCode);
         }
         else
         {
         HttpEntity entity = response.getEntity();
            InputStream content = entity.getContent();
            returnConnection = convertStreamToString(content);
            System.out.println("结果2:" + returnConnection);
         }
        }
        catch (IllegalStateException e)
        {
         e.printStackTrace();
         System.out.println("出错1:" + e.getStackTrace());
        }
        catch (IOException e)
        {
         e.printStackTrace();
         System.out.println("出错2:" + e.getStackTrace());
        }
        }
        }
        else
        {
         System.out.println("出错3:参数不对");
        }
        return returnConnection;
    }

      

  4.   

    您好,我是做php的,我想确认下是不是app这边向我PHP这边请求的时候不走socket也行吧。直接http
      

  5.   

    可以的,挺好做的,对网络请求不频繁,或者实时性要求不高的话,不用socket