blog

サーバーにjsonデータをアップロードする

プロジェクトはしばしば遭遇した状況、ポストマンリクエストのインターフェイスの成功のクライアントリクエストの失敗のポストマンリクエストの結果のクライアントリクエストの結果の実際には、このような状況は、バ...

Nov 24, 2020 · 2 min. read

プロジェクトでは、インターフェイスリクエストがpostmanでは成功しても、クライアントサイドでは失敗するという状況によく遭遇します。

postmanでのリクエスト結果

クライアント側での結果要求

実際には、このような状況は、バックエンドの同僚を見てみましょう、または彼のバックエンドの同僚は、それがうまく調整することができます。しかし、あなたが遭遇した場合はアウトソーシングであり、バックエンドは自分の人ではなく、あなたと協力して喜んでいない、その後、あなただけの痛みをいじくり回すことができます。

アンドロイドの同僚に聞いたところ、彼の方では正常にリクエストできるようです。

コードを提示します:

WS(ws);
NSMutableDictionary *param = [NSMutableDictionary new];
param[@"phone"] = @"電話番号";
//スペースを削除してjsonに変換する
NSError *error = nil;
NSData *data = [NSJSONSerialization dataWithJSONObject:param options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSMutableString *mutStr = [NSMutableString stringWithString:jsonStr];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:yourUrl]];
AFHTTPRequestSerializer *requestSerializer = [AFHTTPRequestSerializer serializer];
requestSerializer.timeoutInterval = 10;
manager.requestSerializer = requestSerializer;
manager.requestSerializer=[AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.requestSerializer.stringEncoding = NSUTF8StringEncoding;
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:yourUrl]]];
request.HTTPMethod = @"POST";
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSString *postStr = [NSString stringWithFormat:@"%@",mutStr];
[request setHTTPBody:[postStr dataUsingEncoding:NSUTF8StringEncoding]];
NSURLSessionTask *task = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
 NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
 if (httpResponse.statusCode == 200) {
 NSString *url = responseObject[@"data"];
 ws.urlStr = url;
 NSURL *URL = [NSURL URLWithString:ws.urlStr];
 NSURLRequest *request = [[NSURLRequest alloc] initWithURL:URL];
 [ws.webView loadRequest:request];
 }else{
 }
}];
[task resume];
Read next

異なるテーブルに対するjdbcクエリのカプセル化

ジェネリック+リフレクションによる実装

Nov 23, 2020 · 2 min read