當我們向后臺請求得到一個html網(wǎng)頁時竖独,后臺返回的數(shù)據(jù)如下:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta HTTP-EQUIV="pragma" CONTENT="no-cache">
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-store, must-revalidate">
<meta HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
<meta HTTP-EQUIV="expires" CONTENT="0">
<title>demo</title>
<link rel="stylesheet" >
<link rel="stylesheet" >
<style>
.weui-flex {
padding: 15px;
}
.appsc img {
width: 100%;
height: 100%;
}
.weui-flex h3 {
color: #333;
font-size: 0.85rem;
}
.weui-flex h5 {
color: #999;
font-size: 0.55rem;
padding: 0.3rem 0;
}
.weui-flex p {
color: #666;
font-size: 0.55rem;
text-indent: 1rem;
overflow: hidden;
letter-spacing: 0.08rem;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 7;
-webkit-box-orient: vertical;
}
.weui-flex .content {
margin-top: 30%;
padding-left: 0.8rem;
}
.detail {
background-color: #ffd5d1;
font-size: 12px;
margin: 0.8rem;
border-radius: 5px;
padding: 0.5rem;
padding-right: 0;
}
.detail .weui-flex {
padding: 0;
}
</style>
</head>
<body>
<div class="weui-flex">
<div class="weui-flex__item appsc"><img src="http://192.168.1.133:8087//hxxentry_shop/images/shop/appsc1.png" alt=""></div>
<div class="weui-flex__item">
<div class="content">
<h3>政法《金融管理》直本名校通關(guān)版</h3>
<h5>課程簡介</h5>
<p>雙方的首發(fā)肯定定是都是浪費家里都是荊防顆粒的設(shè)計費 都放假了點擊點擊似而非發(fā)肯定定是都是浪費家里都是荊防顆粒的設(shè)計費 都放假了點擊點擊似而發(fā)肯定定是都是浪費家里都是荊防顆粒的設(shè)計費
都放假了點擊點擊似而發(fā)肯定定是都是浪費家里都是荊防顆粒的設(shè)計費 都放假了點擊點擊似而都是肯定是都是浪費家里都是荊防顆粒的設(shè)計費 都放假了點擊點擊似而非</p>
</div>
</div>
</div>
<div class="detail">
<div class="weui-flex">
<div class="weui-flex__item" >開課時間:</div>
<div class="weui-flex__item">總課時:</div>
</div>
<div class="weui-flex" style="padding-top: 8px">
<div class="weui-flex__item">就讀機構(gòu):上海新康進修學(xué)院(黃浦校區(qū))</div>
</div>
<div class="weui-flex" style="padding-top: 8px">
<div class="weui-flex__item">上課地址:上海市黃浦區(qū)西藏中路18號港陸廣場1505</div>
</div>
</div>
</body>
</html>
此時 我們會發(fā)現(xiàn)發(fā)生了錯誤
這是因為 AFNetworking默認把響應(yīng)結(jié)果當成json來處理,(默認manager.responseSerializer = [AFJSONResponseSerializer serializer]) ,很顯然,我們請求的 返回的并不是一個json文本,而是一個html網(wǎng)頁,但是AFNetworking并不知道,它堅信請求的結(jié)果就是一個json文本!然后固執(zhí)地以json的形式去解析,顯然沒辦法把一個網(wǎng)頁解析成一個字典或者數(shù)組,所以產(chǎn)生了上述錯誤.
然而,我們期望它能夠正確地處理這個情形,而不是提示一個錯誤.
這時候 你必須告訴AFNetworking:別把這個網(wǎng)頁當json來處理!
此時需要設(shè)置一下參數(shù)驯击,代碼如下:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html",@"text/plain",nil];
[manager POST:@"http://192.168.1.133:8087/hxxentry_shop/shop/course/getCourseDetailHtml" parameters: parameter progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSString *result = [[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"%@",result);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error);
}];
此時便可得到一個字符串,這個字符串里就是我們要的html數(shù)據(jù)
通過webview展示即可:
[_webView loadHTMLString:htmlStr baseURL:nil];