单击按钮时的 Android HTTP 发布请求 [英] Android HTTP post request on clicking button

查看:23
本文介绍了单击按钮时的 Android HTTP 发布请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过单击按钮向我的网站发送 HTTP 发布请求.我搜索了allot只找到了这段代码

i want to send an HTTP post request by Clicking on Button to my website. i searched allot only found this piece of code

// 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", "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
    }  

但我不知道点击按钮是如何工作的.

But i don't know how it work with an clicking on button.

推荐答案

使用 AsyncTask 用于对按钮单击执行网络操作:

use AsyncTask for Performing Network Opertion on Button Click as:

public class onbuttonclickHttpPost extends AsyncTask<String, Void, Void> {
    @Override
    protected String doInBackground(String... params) {
        byte[] result = null;
        String str = "";
       // 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", "AndDev is Cool!"));
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                // Execute HTTP Post Request
                HttpResponse response = httpclient.execute(httppost);
                StatusLine statusLine = response.getStatusLine();
                if(statusLine.getStatusCode() == HttpURLConnection.HTTP_OK){
                result = EntityUtils.toByteArray(response.getEntity());
                str = new String(result, "UTF-8");
            }
          } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }  
        return str;
    }

    /**
     * on getting result
     */
    @Override
    protected void onPostExecute(String result) {
        // something with data retrieved from server in doInBackground
    }
}

并在按钮上单击 Start AsyncTask onbuttonclickHttpPost 为:

and on Button Click Start AsyncTask onbuttonclickHttpPost as:

buttonclick.setOnClickListener(new View.OnClickListener()
        {
         public void onClick(View v) {
         new onbuttonclickHttpPost.execute(null);

     }
      });

这篇关于单击按钮时的 Android HTTP 发布请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆