如何使用Android中HTTPGET请求? [英] How to use HttpGet Request in Android?

查看:158
本文介绍了如何使用Android中HTTPGET请求?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用这code,但它捕获在一个try-catch错误。哪里是一个错误?

当我打印错误, content.setText(ex.getMessage()); 为空

下面是相关code:

 公共类MainActivity延伸活动{    TextView的内容;
    FNAME的EditText,电子邮件;    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);        内容=(的TextView)findViewById(R.id.content);
        按钮saveme =(按钮)findViewById(R.id.save);
        saveme.setOnClickListener(新Button.OnClickListener(){
            公共无效的onClick(视图v){
                Toast.makeText(getBaseContext(),请稍候,连接到服务器,Toast.LENGTH_LONG).show();                尝试{
                    字符串loginValue = URLEn coder.en code(FFA,UTF-8);
                    字符串fnameValue = URLEn coder.en code(fdsfdb,UTF-8);                    HttpClient的客户端=新DefaultHttpClient();
                    串的URL =HTTP://mysite/app.php一个=+ loginValue +和b =+ fnameValue;                    尝试{
                        串SetServerString;
                        HTTPGET HTTPGET =新HTTPGET(URL);
                        ResponseHandler所<串GT; ResponseHandler所=新BasicResponseHandler();
                        SetServerString = Client.execute(HTTPGET,ResponseHandler所);
                        content.setText(SetServerString);
                    }赶上(例外前){
                        content.setText(ex.getMessage());
                    }
                }赶上(UnsupportedEncodingException前){
                    content.setText(ex.getMessage());
                }
            }
        });
    }
}


解决方案

我想你NetworkOnMainThreadException。你应该在后台线程中执行网络通信。考虑使用IntentService或AsyncTask的。

I am using this code, but it catches an error in a try-catch. Where is a mistake?

When I print a error, content.setText(ex.getMessage()); is empty.

Here is the relevant code:

public class MainActivity extends Activity {

    TextView content;
    EditText fname, email;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        content = (TextView) findViewById(R.id.content);
        Button saveme = (Button) findViewById(R.id.save);
        saveme.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                Toast.makeText(getBaseContext(), "Please wait, connecting to server.", Toast.LENGTH_LONG).show();

                try {
                    String loginValue = URLEncoder.encode("ffa", "UTF-8");
                    String fnameValue = URLEncoder.encode("fdsfdb", "UTF-8");

                    HttpClient Client = new DefaultHttpClient();
                    String URL = "http://mysite/app.php?a=" + loginValue + "&b=" + fnameValue;

                    try {
                        String SetServerString;
                        HttpGet httpget = new HttpGet(URL);
                        ResponseHandler<String> responseHandler = new BasicResponseHandler();
                        SetServerString = Client.execute(httpget, responseHandler);
                        content.setText(SetServerString);
                    } catch (Exception ex) {
                        content.setText(ex.getMessage());
                    }
                } catch (UnsupportedEncodingException ex) {
                    content.setText(ex.getMessage());
                }
            }
        });
    }
}

解决方案

I think you get NetworkOnMainThreadException. You should perform network communication on background thread. Consider using IntentService or AsyncTask.

这篇关于如何使用Android中HTTPGET请求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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