W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
該文檔由 @Aevit 提供
將框架目錄下的 ./SDK/Objective-C/ 目錄中的全部代碼拷貝到項(xiàng)目里面即可使用。如:
請求方式,可以使用系統(tǒng)的NSURLSession,或第三方的網(wǎng)絡(luò)請求庫等
這里我們使用第三方的AFNetworking,進(jìn)行二次封裝(https://github.com/AFNetworking/AFNetworking)
如需使用其他網(wǎng)絡(luò)請求方式(如NSURLSession),請繼承自PhalApiClient,重寫request方法即可,可參考AFNPhalApiClient
如下是使用的代碼場景片段。
首先,我們需要導(dǎo)入SDK包:
#import "AFNPhalApiClient.h"
然后,準(zhǔn)備按以下方法實(shí)現(xiàn)接口請求即可:
// 待POST的參數(shù)
NSDictionary *params = @{@"demo_key_1": @"your_key", @"demo_key_2": @"1.0"};
// 使用AFNPhalApiClient
[[[[[AFNPhalApiClient sharedClient] withHost:@"http://api1.aevit.xyz/"] withService:@"Default.Index"] withParams:params] requestWithFormDataBlock:^(id formData) {
// 如需上傳文件(圖片等),請參照如下格式
[formData appendPartWithFileData:UIImageJPEGRepresentation([UIImage imageNamed:@"head.JPG"], 1) name:@"file" fileName:@"image.jpg" mimeType:@"image/jpeg"];
} completeBlock:^(id resultObject) {
PALog(@"resultObject: %@", resultObject);
} failureBlock:^(NSError *error) {
PALog(@"error: %@", error);
}];
// 打印url查看
PALog(@"total url: %@", [[AFNPhalApiClient sharedClient] printTotalUrlStr]);
運(yùn)行后,查詢log,可以看到:
可以注意到,調(diào)用完成后,會(huì)有接口請求的鏈接和返回的結(jié)果,如:
2015-10-19 18:28:01.503 PhalApiClientDemo[23161:1199740] total url: http://api1.aevit.xyz/?service=Default.Index&demo_key_2=1.0&demo_key_1=your_key
2015-10-19 18:28:01.536 PhalApiClientDemo[23161:1199740] resultObject: {
data = {
content = "PHPer\U60a8\U597d\Uff0c\U6b22\U8fce\U4f7f\U7528PhalApi\Uff01";
time = 1445250481;
title = "Hello World!";
version = "1.2.1";
};
msg = "";
ret = 200;
}
當(dāng)服務(wù)端接口需要接口簽名驗(yàn)證,或者接口參數(shù)加密傳送,或者壓縮傳送時(shí),可以實(shí)現(xiàn)此過濾器,以便和服務(wù)端操持一致。
當(dāng)需要擴(kuò)展時(shí),分兩步。首先,需要實(shí)現(xiàn)過濾器接口:
@interface MyFilter : PhalApiClientFilter
@end
@implementation PhalApiClientFilter
/**
* 接口過濾器
* 可用于接口簽名生成
*
* @param service 接口服務(wù)名稱
* @param params 接口參數(shù),注意是mutable變量,可以直接修改
*/
- (void)filter:(NSString*)service params:(NSMutableDictionary*)params {
// 在此對接口進(jìn)行過濾
}
@end
然后設(shè)置過濾器:
[[[[[[AFNPhalApiClient sharedClient] withHost:BASE_URL] withService:@"Default.Index"] withParams:params]
withFilter:[MyFilter new]] // filter
requestWithFormDataBlock:^(id formData) {
} completeBlock:^(id resultObject) {
} failureBlock:^(NSError *error) {
}];
當(dāng)返回的接口結(jié)果不是JSON格式時(shí),如XML,請上google搜索“AFNetworking XML”相關(guān)資料即可)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: