当前位置: 首页 > 面试题库 >

在Android中发送POST数据

公冶威
2023-03-14
问题内容

我对PHP,JavaScript和许多其他脚本语言有丰富的经验,但是对Java或Android却没有太多的经验。

我正在寻找一种将 POST 数据发送到PHP脚本并显示结果的方法。


问题答案:

***更新了适用于Android 6.0+的答案。

    public class CallAPI extends AsyncTask<String, String, String> {

        public CallAPI(){
            //set context variables if required
        }

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

         @Override
         protected String doInBackground(String... params) {
            String urlString = params[0]; // URL to call
            String data = params[1]; //data to post
            OutputStream out = null;

            try {
                URL url = new URL(urlString);
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                out = new BufferedOutputStream(urlConnection.getOutputStream());

                BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
                writer.write(data);
                writer.flush();
                writer.close();
                out.close();

                urlConnection.connect();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
    }

较旧的答案

注意:此解决方案已过时。 它仅适用于最高5.1的Android设备。Android 6.0及更高版本不包含此答案中使用的Apache
http客户端。

Apache Commons的Http Client是必经之路。它已经包含在android中。这是一个简单的示例,说明如何使用HTTP Post。

public void postData() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("id", "12345"));
        nameValuePairs.add(new BasicNameValuePair("stringdata", "Hi"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
}


 类似资料:
  • 问题内容: 我对PHP,JavaScript和许多其他脚本语言有丰富的经验,但是对Java或Android却没有太多的经验。 我正在寻找一种将POST数据发送到PHP脚本并显示结果的方法。 问题答案:

  • 我希望按照图像所说的去做: 以下是我试图从该图像实现的代码: RequestQueue=Volley。newRequestQueue(this);字符串url=”https://api.kairos.com/enroll"; 现在我不知道如何将JSONObject部分添加到我的POST请求中,以及如何添加Content-Type Header。请帮我解决这个问题。

  • 我正在localhost上运行ASP.netJSON服务。我正在从Android应用程序向服务器发送JSON POST请求。服务器正在接收连接,但没有POST数据(我通过设置断点来确认这一点,断点在我从Android应用程序发布后命中)。我得到的HttpURLConnection响应代码是200 OK。但是,服务器没有收到数据。我不确定是否正在发送任何数据。我的android代码是(包裹在Asyn

  • 我试图用json作为主体数据在jmeter中发布帖子,但我只得到了400。我发送到的URL只接受json。我在《邮差》中也用过同样的卷发,效果很好。我曾尝试将json作为一个没有名称的值放入参数中,但没有成功。 我只是想发送{“uid”:“jmtest”,“name”:“newdevice”}。 对不起,我不能发布更多的链接。 采样结果为 请求看起来像 响应数据为

  • 我用这个代码发送后数据到服务器使用android。有人能给我任何想法或您的示例如何发送POST或GET json数据到服务器TOMCAT...!步骤提示: > 创建HttpClient 向给定URL发出POST请求 构建jsonObject 转换JSONObject到JSON到String 设置json为StringEntity 设置http帖子实体 设置一些头来通知服务器内容的类型 对给定URL

  • POST请求发送json数据java HTTPURLConnection 从Android发送JSON HTTP POST请求 Java-通过POST方法轻松发送HTTP参数 应用程序/x-www-form-urlencoded还是多部分/form-data? 如何使用POST向HttpURLConnection添加参数 JSON解析,创建URLConnection-Android Studio