使用AsyncHttpClient框架來完成網路資料的請求
好幾天沒有到自己的部落格裡寫點文章了,今天在做專案之餘花點時間來寫一篇文章。由於本人在一個基於Android的購物平臺,目前pc端基本功能都已經寫好,Android的基本UI介面都已經OK,pc端介面也已有序的完成,現在只有Android客戶端通過HTPP請求獲取pc端資料沒有寫了,週末之餘花點時間來寫寫。要進行網路請求就想到找找比較優秀的網路請求框架使用來提高自己的技術,也許這個可能和大多數人一樣不斷的追尋新的東西才能有所成長,我也不例外,也時常的追尋一些新的東西融入到專案中去。找了找看到網路上有很多這樣的框架有功能比較全面的框架如:Xutils框架,afinal框架,ThinkAndroid等,也有針對網路請求的volley和AsyncHttpClient框架。
本文中主要使用AsyncHttpClient框架來寫。我要說的是AsyncHttpClient框架確實挺不錯的,看著這樣的程式碼就很舒服,使用也很方便。
1.首先我們需要去下載AsyncHttpClient框架:
如果不知道在哪裡下載請猛戳這裡:Android開發AsyncHttpClient框架 這個是下載網址這裡有很好的demo可以供我們學習之用。
2.安裝和基本的使用
(首先我要備註和宣告下 我用的開發工具是 AndroidStudio version:0.8.8)
Add maven dependency using Gradle buildscript in format
dependencies {
compile 'com.loopj.android:android-async-http:1.4.5'
}
Import the http package.
import com.loopj.android.http.*;
Create a new AsyncHttpClient
instance and make a request:
AsyncHttpClient client = new AsyncHttpClient();
client.get("http://www.google.com", new AsyncHttpResponseHandler () {
@Override
public void onStart() {
// called before request is started
}
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] response) {
// called when response HTTP status is "200 OK"
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Throwable e) {
// called when response HTTP status is "4XX" (eg. 401, 403, 404)
}
@Override
public void onRetry(int retryNo) {
// called when request is retried
}
});
Recommended Usage: Make a Static Http Client
In this example, we’ll make a http client class with static accessors to make it easy to communicate with Twitter’s API.
import com.loopj.android.http.*;
public class TwitterRestClient {
private static final String BASE_URL = "http://api.twitter.com/1/";
private static AsyncHttpClient client = new AsyncHttpClient();
public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
client.get(getAbsoluteUrl(url), params, responseHandler);
}
public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
client.post(getAbsoluteUrl(url), params, responseHandler);
}
private static String getAbsoluteUrl(String relativeUrl) {
return BASE_URL + relativeUrl;
}
}
This then makes it very easy to work with the Twitter API in your code:
import org.json.*;
import com.loopj.android.http.*;
class TwitterRestClientUsage {
public void getPublicTimeline() throws JSONException {
TwitterRestClient.get("statuses/public_timeline.json", null, new JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
// If the response is JSONObject instead of expected JSONArray
}
@Override
public void onSuccess(int statusCode, Header[] headers, JSONArray timeline) {
// Pull out the first event on the public timeline
JSONObject firstEvent = timeline.get(0);
String tweetText = firstEvent.getString("text");
// Do something with the response
System.out.println(tweetText);
}
});
}
}
Persistent Cookie Storage with PersistentCookieStore
This library also includes a PersistentCookieStore
which is an implementation of the Apache HttpClient CookieStore
interface
that automatically saves cookies to SharedPreferences
storage on the Android device.
This is extremely useful if you want to use cookies to manage authentication sessions, since the user will remain logged in even after closing and re-opening your app.
First, create an instance of AsyncHttpClient
:
AsyncHttpClient myClient = new AsyncHttpClient();
Now set this client’s cookie store to be a new instance of PersistentCookieStore
, constructed with an activity or application
context (usually this
will suffice):
PersistentCookieStore myCookieStore = new PersistentCookieStore(this);
myClient.setCookieStore(myCookieStore);
Any cookies received from servers will now be stored in the persistent cookie store.
To add your own cookies to the store, simply construct a new cookie and call addCookie
:
BasicClientCookie newCookie = new BasicClientCookie("cookiesare", "awesome");
newCookie.setVersion(1);
newCookie.setDomain("mydomain.com");
newCookie.setPath("/");
myCookieStore.addCookie(newCookie);
Adding GET/POST Parameters with RequestParams
The RequestParams
class is used to add optional GET or POST parameters to your requests.RequestParams
can
be built and constructed in various ways:
Create empty RequestParams
and immediately add some parameters:
RequestParams params = new RequestParams();
params.put("key", "value");
params.put("more", "data");
Create RequestParams
for a single parameter:
RequestParams params = new RequestParams("single", "value");
Create RequestParams
from an existing Map
of
key/value strings:
HashMap<String, String> paramMap = new HashMap<String, String>();
paramMap.put("key", "value");
RequestParams params = new RequestParams(paramMap);
Uploading Files with RequestParams
The RequestParams
class additionally supports multipart file uploads as follows:
Add an InputStream
to the RequestParams
to
upload:
InputStream myInputStream = blah;
RequestParams params = new RequestParams();
params.put("secret_passwords", myInputStream, "passwords.txt"
相關推薦
使用AsyncHttpClient框架來完成網路資料的請求
好幾天沒有到自己的部落格裡寫點文章了,今天在做專案之餘花點時間來寫一篇文章。由於本人在一個基於Android的購物平臺,目前pc端基本功能都已經寫好,Android的基本UI介面都已經OK,pc端介面也已有序的完成,現在只有Android客戶端通過HTPP請求獲取pc端資
Android okhttp3來進行網路資料請求和傳送
在開發過程中我們很多地方都要和伺服器進行互動以及請求資料,本篇部落格簡單的介紹下okhttp3。
1.get請求
2.post請求
3.上傳檔案
4.下載檔案
ok,下面我們就要準備下如何封裝使用okhttp3。
在Android studio中我們可以在app---
AFNetworking框架IOS網路資料請求由淺入深的使用方法
一. 概述
我們今天是來深入研究一下這個與我們日常開發密切相關的框架是如何實現的。
這是我對 AFNetworking 整個架構的理解,隨後一系列的文章也會逐步分析這些模組。
在這篇文章中,我們有兩個問題需要了解:
如何使用 NSURLSession 發出
如何用Struts2框架來完成登錄操作
如何用Struts2框架來完成登錄操作1. 問題:為什麽使用struts2框架?Struts2框架它是一個在web中應用的mvc框架。我們使用strtus2框架來完成web開發有什麽優勢?2. 問題:怎樣使用strtuts2框架首先要上網下載它的jar包。步驟:1.導入相關的jar文件2.需要在web.xml
RecyclerView+OKHttp+MVP網路資料請求,刪除條目
//首先新增依賴
//Recyclerview是listview的升級版
implementation 'com.android.support:recyclerview-v7:28.0.0'
//okhttp
implementation 'com.square
通用JS工具類封裝——網路資料請求功能、獲取服務端介面 url、引數功能
程式碼片段
'use strict';
var conf = {
serverHost = ''
};
var _mm = {
//網路請求功能
request : function(param){
var _this = this;
使用SSH框架來完成CRM系統流程總結
今天是國慶節的第四天,也是中間一天。沒有捨得出去玩,因為我覺得像這樣的大塊時間來的不容易,不用去上課,沒有人干擾,用來學習自己喜歡的東西挺幸福的。我用將近一個星期的時間學習別人的CRM系統。自己也是剛學完SSH框架,用SSH框架來實現CRM系統。過程中犯下過許多錯誤。我
Swift 網路資料請求與處理最常用第三方
一: Swift 網路資料請求與處理最常用第三方
又有時間出來裝天才了,還是在學swift,從中又發現一些問題,這兩天上網找部落格看問題弄的真的心都累。部落格一篇寫出來,好多就直接照抄,就沒有實質性的把問題解決了,只是在發表的部落格數量上 +
iOS網路資料請求
HTTP和HTTPS協議
URL全稱是Uniform ResourceLocator(統一字典定位符)通過一個URL,能夠找到網際網路上唯一的11個資源
URL就是資源的地址,位置,網際網路上的每個資源都有一個唯一URL
協議:不同的協議代表著不同國的資源
Jpcap包的學習筆記(五)如何使用JpcapCaptor例項來捕捉網路資料包(上部)
如何使用JpcapCaptor例項來捕捉網路資料包
當你通過開啟網絡卡裝置得到JpcapCaptor例項後,就可以利用它來捕捉網路資料包了。你可以利用以下兩種方法來捕捉網路資料包。第一
利用執行緒池實現Android客戶端的http網路資料請求工具類
該工具類值只實現了HTTP的get方法,參考get方法可輕鬆實現post、put、delete等方法,下面是get方法的實現
public class SimpleHttpClient {
private static final String TAG = Sim
lua網路資料請求過程
1.ResponseController 註冊訊息
-- 定向抽卡
commandFuncMap[ CommandTypes.ClarityDrawState ] = function( comman
Volley網路框架之快取載入圖片、Post與get的資料請求
前言:Volley作為主流網路框架之一,必然有它的優點。Volley可是說是把AsyncHttpClient和Universal-Image-Loader的優點集於了一身, 它的常用在資料量不大,但網路通訊頻繁,而且有圖片快取
用AsyncTask來實現非同步請求網路資料
public class HelperAsnc {
public HelperAsnc(){}
//get請求
public HelperAsnc get(String url){
doHttp(url,"GET","");
retu
ThinkPHP框架,按分類,計算商品價格區間,來完成價格搜索
_id pricedata explode eid blog class light price think
//取出分類下的篩選屬性
$cateId=I(‘get.cid‘);
/********計算這個分類下商品的七個價格區間的範圍******/
用AFN請求網路資料時出錯:(Assertion failure in -[AFHTTPRequestSerializer requestWithMethod:URLString:parameter)
iOS 開發中使用AFN請求網路資料時出錯:(Assertion failure in -[AFHTTPRequestSerializer requestWithMethod:URLString:parameters:error:])。
原因是AFNetworking請求中含有中文,需要處理
資料載入(有網路是請求網路資料 無網路時載入資料庫資料)
//NetWork 進行網路判斷
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetWork {
UrlConnection請求網路資料
1.Get請求
try {
//1 定義 URL 地址
URL url = new URL(地址 + 傳過來的引數);
//ctrl + h 檢視類的繼承結構
//ctrl + q 檢視方法資訊
//2 開啟連線
H
Rxjava+Retrofit 觀察者模式 請求網路資料簡單使用
首先引入依賴
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
implementation
HttpURLConnection 請求網路資料 簡單使用(成功方法)
import android.os.Handler; import android.os.Message; import com.google.common.io.CharStreams; import java.io.InputStreamReader; import java.net.H