我正在尝试使用 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/