直接上代碼,使用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; } }
