轉(zhuǎn)載:http://blog.csdn.net/lmj623565791/article/details/47911083
Http Get
獲取一個(gè)網(wǎng)頁的內(nèi)容
//創(chuàng)建okHttpClient對(duì)象
OkHttpClient mOkHttpClient = new OkHttpClient();
//創(chuàng)建一個(gè)Request
final Request request = new Request.Builder()
.url("https://www.baidu.com")
.build();
//new call
Call call = mOkHttpClient.newCall(request);
//請(qǐng)求加入調(diào)度
call.enqueue(new Callback()
{
@Override
public void onFailure(Request request, IOException e)
{
}
@Override
public void onResponse(final Response response) throws IOException
{
//String htmlStr = response.body().string();
}
});
注意url里的網(wǎng)址前面要加上http://
- 以上就是發(fā)送一個(gè)get請(qǐng)求的步驟达舒,首先構(gòu)造一個(gè)Request對(duì)象,參數(shù)最起碼有個(gè)url驶拱,當(dāng)然你可以通過Request.Builder設(shè)置更多的參數(shù)比如:header装畅、method等。
- 然后通過request的對(duì)象去構(gòu)造得到一個(gè)Call對(duì)象嗽元,類似于將你的請(qǐng)求封裝成了任務(wù)敛纲,既然是任務(wù),就會(huì)有execute()和cancel()等方法剂癌。
- 最后淤翔,我們希望以異步的方式去執(zhí)行請(qǐng)求,所以我們調(diào)用的是call.enqueue佩谷,將call加入調(diào)度隊(duì)列旁壮,然后等待任務(wù)執(zhí)行完成监嗜,我們?cè)贑allback中即可得到結(jié)果。我們也可以直接調(diào)用
call.execute()
返回一個(gè)Response抡谐。
這里需要注意幾點(diǎn):
onResponse回調(diào)的參數(shù)是response裁奇,一般情況下,比如我們希望獲得返回的字符串麦撵,可以通過response.body().string()獲裙舫Α;如果希望獲得返回的二進(jìn)制字節(jié)數(shù)組免胃,則調(diào)用response.body().bytes()音五;如果你想拿到返回的inputStream,則調(diào)用response.body().byteStream()羔沙。