android - 通过 Android 应用程序将数据发布到 URL

标签 android eclipse url post

我正在尝试使用 Android 应用程序将数据发布到 URL。

URL :

参数: “名称”和“消息”

我使用以下代码,但它不起作用:

public void onClick(View v) {
    // Create a new HttpClient and Post Header

            // Create a new HttpClient and Post Header
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://comparch2011.appspot.com/");

            try {
                // Add your data
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                nameValuePairs.add(new BasicNameValuePair("name", "DEV"));
                nameValuePairs.add(new BasicNameValuePair("message", "AndDev is Cool!"));
                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
            }
     }

最佳答案

-首先:你应该使用adb logcat 。它将为您提供计算机上手机的实时日志,了解正在发生的情况非常有用。

-我怀疑您在 Activity 中进行这些调用,在这种情况下,应用程序只是因此而崩溃:它们是防止您这样做的保护措施。必要时它会引发“主线程上的网络”错误(如下所示)。 问题在于 Activity 是在主线程上运行的,该线程也用于 UI。因此,当您进行此类网络调用时,所有 UI 都会被阻止,直到函数返回(并且由于它正在等待网站响应,因此可能需要几秒钟的时间,这对应用程序的可用性非常不利)。

解决方案是使用 AsyncTask 。它是一个易于使用的类,允许您进行异步调用(即不阻塞 UI 的调用)。

关于android - 通过 Android 应用程序将数据发布到 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12386758/

相关文章:

android - EditText 子类的 Material 设计

android - 无法从 python 中调用 bash

java - 在 Mac OS 上配置 eclipse.ini

ios - 如何在没有外部库的情况下在 UITableView 中缓存图像?

mongodb - 将单独的 MongoDB 与 meteor 一起使用时, meteor 重置停止工作

Android 背景 - 拉伸(stretch) - 9Patch 问题

android - 切换 Android 设备数据连接

java - 找不到设备

java - 我试图从 jsp 文件调用 servlet 来执行业务逻辑并返回到同一页面

javascript - 在 JQuery 中的 URL 内容中添加动态变量