生活随笔
收集整理的這篇文章主要介紹了
iOS中POST请求
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
iOS中POST請(qǐng)求的發(fā)送需要使用NSMutableURLRequest可以設(shè)置URL request的頭字段,比如超時(shí)時(shí)間,請(qǐng)求類型:GET POST等一些關(guān)鍵頭字段:
- (IBAction)login {
// 1.用戶名
NSString *usernameText = self.username.text;
if (usernameText.length == 0) {
[MBProgressHUD showError:@”請(qǐng)輸入用戶名”];
return;
}
// 2.密碼
NSString *pwdText = self.pwd.text;
if (pwdText.length == 0) {[MBProgressHUD showError:@"請(qǐng)輸入密碼"];return;
}// 增加蒙板
[MBProgressHUD showMessage:@"正在拼命登錄中...."];// 3.發(fā)送用戶名和密碼給服務(wù)器(走HTTP協(xié)議)
// 創(chuàng)建一個(gè)URL : 請(qǐng)求路徑
NSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/login"];// 創(chuàng)建一個(gè)請(qǐng)求
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];// 5秒后算請(qǐng)求超時(shí)(默認(rèn)60s超時(shí))
request.timeoutInterval = 15;request.HTTPMethod = @"POST";
// 設(shè)置請(qǐng)求體
NSString *param = [NSString stringWithFormat:@"username=%@&pwd=%@", usernameText, pwdText];
// NSString --> NSData
request.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding];// 設(shè)置請(qǐng)求頭信息
[request setValue:@"iPhone 6" forHTTPHeaderField:@"User-Agent"];// 發(fā)送一個(gè)同步請(qǐng)求(在主線程發(fā)送請(qǐng)求)
// queue :存放completionHandler這個(gè)任務(wù)
NSOperationQueue *queue = [NSOperationQueue mainQueue];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {// 隱藏蒙板[MBProgressHUD hideHUD];
// NSHTTPURLResponse resp = (NSHTTPURLResponse )response;
// NSString *msg = [NSHTTPURLResponse localizedStringForStatusCode:resp.statusCode];
// NSLog(@”%d %@ %@”, resp.statusCode, msg, resp.allHeaderFields);
// 這個(gè)block會(huì)在請(qǐng)求完畢的時(shí)候自動(dòng)調(diào)用if (connectionError || data == nil) { // 一般請(qǐng)求超時(shí)就會(huì)來(lái)到這[MBProgressHUD showError:@"請(qǐng)求失敗"];return;}// 解析服務(wù)器返回的JSON數(shù)據(jù)NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];NSString *error = dict[@"error"];if (error) {// {"error":"用戶名不存在"}// {"error":"密碼不正確"}[MBProgressHUD showError:error];} else {// {"success":"登錄成功"}NSString *success = dict[@"success"];[MBProgressHUD showSuccess:success];}}];
}
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的iOS中POST请求的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。