プロジェクトの前にA.は倹約使用されています。さて、HTTP、HTTPSを使用しない理由を、彼らは暗号化されていることを背景に背景を置き換えます。
この方法は、AFHTTPSessionManagerに使用されています
- (NSURLSessionDataTask *)POST:(NSStringの* )URLString パラメータ:( ID )パラメータ constructingBodyWithBlock :( 空(^)(ID <AFMultipartFormData> FORMDATA))ブロック 進行:(NULL可能で、ボイド(^)(NSProgress * _Nonnull))uploadprogressの 成功:( 空(^)(NSURLSessionDataTask *タスク、ID responseObject))の成功 失敗:( 無効(^)(NSURLSessionDataTask *タスク、NSError *エラー))の故障。
パラメータへのパラメータとしてのTokenId
次に、ファイルのフィールドに注意を払う:このファイルはあります
[FORMDATA appendPartWithFileData:ファイル[@ "バフ"]名前:@ "ファイル"ファイル名:ファイル[@ "名前"] MIMEタイプ:@ "イメージ/ *" ];
名前の値。私が知って取得していない前に。
FILE_UPLOAD_URLパラメータ:[[WLFNetWorkManager]はPOSTを共有@ { @ " のTokenId ":のTokenId} constructingBodyWithBlock:^(ID <AFMultipartFormData> _Nonnull FORMDATA){ [FORMDATA appendPartWithFileData:ファイル[ @" バフ" ]名:@" ファイル"ファイル名: [ファイル"@ 名" MIMEタイプ]:@" イメージ/ * " ]; }進行: ^(NSProgress * _Nonnull uploadprogressの){ // のNSLog(uploadprogressの、 "uploadprogressの=%@" @)。 }成功:^(NSURLSessionDataTask * _Nonnullタスク、 _Nullable responseObject){ NSStringの * JSON = [[NSStringのALLOC] initWithData:responseObjectエンコーディング:NSUTF8StringEncoding]。 NSDictionaryの * retDict = [[WLFDataTransformTool shareInstance] dictionaryWithJsonString:JSON]; 完全な(retDict)。 / * { コード= 1。 データ= { FILEID = 114587。 FILESIZE = 5081851; fileUrl = "/11/2020/3/18/5c4e397d-13e8-4b05-bc18-3a093ca28dc6.jpg"。 }。 MSG = "文件上传成功"。 } * / }の失敗:^(NSURLSessionDataTask * _Nullableタスク、NSError * _Nonnullエラー){ faildBlock(エラー) }]。
II。倹約の手順を使用して、それを記録する方法もあります。
背面側は倹約ファイルを書き込んだ後、倹約/兄弟ディレクトリでコマンドを実行した後:
倹約- アウト /ユーザ/ UDC /デスクトップ/ thrift_interface -I ./ --genココアudc_all.thrift
生成
udc_all.h
udc_all.m
2つのOCファイル。これら二つの文書は、直接インタフェース、それを呼び出すように関係しています。他のモデルああ、リターンコード、ステータスコード。リサイクル/ファイルで定義されている、自分自身を記述しないでください。
あなたが他の言語インタフェースファイルを生成したい場合は、以下のコマンドを試すことができます。
#thrift - アウト /ユーザ/ UDC /デスクトップ/ thrift_interface -I ./ - GENスウィフトudc_all.thriftの #thrift - アウト /ユーザ/ UDC /デスクトップ/ thrift_interface -I ./ - GEN CPP udc_all_cpp.thrift #thrift - アウト /ユーザ/ UDC /デスクトップ/ thrift_interface -I ./ --gen JS udc_all_js.thrift
使用シンプル:
- (ボイド)-OCカプセル化されたインタフェースリクエストメソッド名{ WLFAPIDataAccess __unsafe_unretained * weakSelf = 自己; [self.asyncQueue addOperationWithBlock: ^(ボイド){ @try { self.transport = [[TSocketTransport ALLOC] initWithHostname:SERVER_HOST_IPポート:SERVER_PORT]。 // + IPホストコンピュータ初期化 self.protocol = [[TBinaryProtocol ALLOC] initWithTransport:self.transport]; self.server = [[UdcApiServiceClient ALLOC] initWithProtocol:self.protocol]; NSError * エラー; FileInfoRespfileresponseInfo = * [uploadFile self.server:self.udcheadファイル:FILEDATAエラー:&エラー];インターフェースコールバックモデル戻っデータが出て取得したudc_all.hファイル上に生成された//呼び出し // DLOG(@「UploadFile%RET = @ "fileresponseInfo); // UploadFile RET = FileInfoResp(レスポンス:ResponseInfo(コード:1、メッセージは:."ファイルが正常にアップロード")、のfileInfo:のFileInfo(ファイルID :24709、fileUrl:" / 11/2018/11/8 /8ad9212c-32ad-4d9f-8147-3c48077a21b3.JPG",fileName:"IMG_0005",fileSize:473044,originalFileName:"(null)",pkId:0))
[self.transport閉じる]; // 閉じる倹約送信回避資源の無駄遣い [自己asyncRequestResultWith:fileresponseInfo完全:完全に失敗しました:faildBlock]; } @catch(NSException * E){ NSStringの * errorMsg内容=e.description; // DLOG(@ "UploadFileエラー%@"、errorMsg内容); [weakSelf.mainQueue addOperationWithBlock:^(ボイド){ 完全(errorMsg内容)。 }]。 } }]。 }