你的位置:首页 > Java教程

[Java教程]安卓用Post访问动态web


public class MyPostWebDemo extends Activity {
    private static final String PATH = "http://gouservice.juecheng.cn/Actv/Rich?token=7766721ce641cd6e58721a785942e8f7";
    private TextView info;

    // private boolean flag;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        // 出现android.os.NetworkOnMainThreadException错误提示的原因
        // 原因:不允许在主线程中进行网络访问
        //解决方法   也可以 通过异步来实现
        StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                .detectDiskReads().detectDiskWrites().detectNetwork()
                .penaltyLog().build());
        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                .detectLeakedSqlLiteObjects().detectLeakedClosableObjects()
                .penaltyLog().penaltyDeath().build());
        super.setContentView(R.layout.main_post);
        this.info = (TextView) super.findViewById(R.id.info);

        // new Thread(){
        // @Override
        // public void run() {
        //
        // }
        // };

        try {
            // 提交路径
            HttpPost request = new HttpPost(PATH);
            // 设置提交参数
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("Friends", "42"));
            params.add(new BasicNameValuePair("PageNo", "1"));
            params.add(new BasicNameValuePair("CountPerPage", "10"));
            params.add(new BasicNameValuePair("LatestZanCount", "10"));
            params.add(new BasicNameValuePair("LatestCommentCount", "1"));
            // 设置编码
            request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
            // 接收回应
            HttpResponse response = new DefaultHttpClient().execute(request);

            // String d = EntityUtils.toString(response.getEntity()).trim();
            // info.setText(d);
            if (response.getStatusLine().getStatusCode() != 404) {
                String d = (EntityUtils.toString(
                // 接收返回信息
                        response.getEntity()));
                info.setText(d);
            }

        } catch (Exception e) {
            e.printStackTrace();
            info.setText(e.toString());
        }

    }

}