0

我是 android 新手,我正在尝试使用 php 进行 api 调用,我已经为它做了一个示例,它可以在另一台计算机上正常工作,但相同的应用程序包在我的笔记本电脑上的 eclipse 中出现错误。

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
    }
} ` 

听到是我的错误日志,我得到了这么多错误。

4

2 回答 2

0
//Try following way    
//List<NameValuePair> nameValuePairs 
HttpClient hc = new DefaultHttpClient();
HttpPost hp = new HttpPost(url);
UrlEncodedFormEntity obj=new UrlEncodedFormEntity(nameValuePairs);
obj.setChunked(true);
hp.setEntity(obj);
HttpResponse hr = hc.execute(hp);   
HttpEntity he = hr.getEntity(); 
于 2013-04-25T11:21:25.063 回答
0

Logcat 很清楚:Could not find a method postData(View) in the activity class. 我猜您已经使用 xml 布局来设置按钮操作。

在这种情况下,只需更改您的

public void postData() {
}

public void postData(View view) {
}

注意:以这种方式设置按钮侦听器效率不高。

此外,您应该在另一个线程上执行网络操作 - 在主线程上使用网络将在 Android 3.0+ 上引发NetworkOnMainThreadException

于 2013-04-25T13:23:17.183 回答