Afinal的使用(二):使用FinalHttp抓取網頁內容


直接上代碼,使用FinalHttp抓取百度網頁內容:

官方的示例有錯誤的地方,官方onSuccess的參數是String類型,可是這個0.5版的改成了Object類型,其實本來就是一個字符串,不知道為什么要用Object類型

package com.example.app1;

import net.tsz.afinal.FinalActivity;
import net.tsz.afinal.FinalHttp;
import net.tsz.afinal.annotation.view.ViewInject;
import net.tsz.afinal.http.AjaxCallBack;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends FinalActivity  {

    @ViewInject(id = R.id.button1)
    private Button button1;
    
    @ViewInject(id = R.id.textView1)
    private TextView textView1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        FinalHttp fh = new FinalHttp();
        fh.get("http://www.baidu.com/", new AjaxCallBack(){

            @Override
            public void onSuccess(Object t) {
                textView1.setText(t.toString());
            }
            
            @Override
            public void onFailure(Throwable t, int errorNo, String strMsg) {
                textView1.setText(strMsg);
            }

        });


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

 

使用post請求的例子:

該例子需要傳遞參數到要抓取的頁面,抓取指定日期余額寶的萬份收益

package com.example.app1;

import java.io.ByteArrayInputStream;
import java.io.File;

import net.tsz.afinal.FinalActivity;
import net.tsz.afinal.FinalHttp;
import net.tsz.afinal.annotation.view.ViewInject;
import net.tsz.afinal.http.AjaxCallBack;
import net.tsz.afinal.http.AjaxParams;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends FinalActivity {

    @ViewInject(id = R.id.button1)
    private Button button1;

    @ViewInject(id = R.id.textView1)
    private TextView textView1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        AjaxParams params = new AjaxParams();
        params.put("method", "find");
        params.put("date", "2014-01-25");
        params.put("fundcode", "000198");

        FinalHttp fh = new FinalHttp();
        fh.post("http://www.thfund.com.cn/calculator.do", params,
                new AjaxCallBack() {

                    @Override
                    public void onSuccess(Object t) {
                        textView1.setText(t.toString());
                    }

                    @Override
                    public void onFailure(Throwable t, int errorNo,
                            String strMsg) {
                        textView1.setText(strMsg);
                    }

                });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM