激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - 詳解iOS通過ASIHTTPRequest提交JSON數據

詳解iOS通過ASIHTTPRequest提交JSON數據

2021-02-27 15:56浣熊 IOS

這篇文章主要介紹了詳解iOS通過ASIHTTPRequest提交JSON數據,對代碼進行了詳細的講解,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

先驗知識——什么是ASIHTTPRequest?

使用iOS SDK中的HTTP網絡請求API,相當的復雜,調用很繁瑣,ASIHTTPRequest就是一個對CFNetwork API進行了封裝,并且使用起來非常簡單的一套API,用Objective-C編寫,可以很好的應用在Mac OS X系統和iOS平臺的應用程序中。ASIHTTPRequest適用于基本的HTTP請求,和基于REST的服務之間的交互。

上傳JSON格式數據

首先給出主功能代碼段,然后對代碼進行詳細解析:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
NSDictionary *user = [[NSDictionary alloc] initWithObjectsAndKeys:@"0", @"Version", nil];
        if ([NSJSONSerialization isValidJSONObject:user])
        {
          NSError *error;
          NSData *jsonData = [NSJSONSerialization dataWithJSONObject:user options:NSJSONWritingPrettyPrinted error: &error];
          NSMutableData *tempJsonData = [NSMutableData dataWithData:jsonData];
          //NSLog(@"Register JSON:%@",[[NSString alloc] initWithData:tempJsonData encoding:NSUTF8StringEncoding]);
           
          NSURL *url = [NSURL URLWithString:@"http://42.96.140.61/lev_version.php"];
          ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
          [request addRequestHeader:@"Content-Type" value:@"application/json; encoding=utf-8"];
          [request addRequestHeader:@"Accept" value:@"application/json"];
          [request setRequestMethod:@"POST"];
          [request setPostBody:tempJsonData];
          [request startSynchronous];
          NSError *error1 = [request error];
          if (!error1) {
            NSString *response = [request responseString];
            NSLog(@"Test:%@",response);
          }
        }

代碼段第一行:

?
1
NSDictionary *user = [[NSDictionary alloc] initWithObjectsAndKeys:@"0", @"Version", nil];

構造了一個最簡單的字典類型的數據,因為自iOS 5后提供把NSDictionary轉換成JSON格式的API。

第二行if判斷該字典數據是否可以被JSON化。

?
1
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:user options:NSJSONWritingPrettyPrinted error: &error];

這一句就是把NSDictionary轉換成JSON格式的方法,JSON格式的數據存儲在NSData類型的變量中。

?
1
NSMutableData *tempJsonData = [NSMutableData dataWithData:jsonData];

這一句是把NSData轉換成NSMutableData,原因是下面我們要利用ASIHTTPRequest發送JSON數據時,其消息體一定要以NSMutableData的格式存儲。

下面一句注視掉的語句

?
1
//NSLog(@"Register JSON:%@",[[NSString alloc] initWithData:tempJsonData encoding:NSUTF8StringEncoding]);

主要作用是記錄剛才JSON格式化的數據

下面到了ASIHTTPRequest功能部分:

?
1
2
NSURL *url = [NSURL URLWithString:@"http://xxxx"];
          ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

這兩句的主要功能是設置要與客戶端交互的服務器端地址。

接下來兩句:

?
1
2
[request addRequestHeader:@"Content-Type" value:@"application/json; encoding=utf-8"];
          [request addRequestHeader:@"Accept" value:@"application/json"];

是設置HTTP請求信息的頭部信息,從中可以看到內容類型是JSON。

接下來是設置請求方式(默認為GET)和消息體:

?
1
2
[request setRequestMethod:@"POST"];
          [request setPostBody:tempJsonData];

一切設置完畢后開啟同步請求:

?
1
[request startSynchronous];

最后的一段:

?
1
2
3
4
if (!error1) {
            NSString *response = [request responseString];
            NSLog(@"Rev:%@",response);
          }

是打印服務器返回的響應信息。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/yuanbohx/article/details/10343179

延伸 · 閱讀

精彩推薦
  • IOSiOS中UILabel實現長按復制功能實例代碼

    iOS中UILabel實現長按復制功能實例代碼

    在iOS開發過程中,有時候會用到UILabel展示的內容,那么就設計到點擊UILabel復制它上面展示的內容的功能,也就是Label長按復制功能,下面這篇文章主要給大...

    devilx12792021-04-02
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

    在iOS開發中視圖的切換是很頻繁的,獨立的視圖應用在實際開發過程中并不常見,除非你的應用足夠簡單。在iOS開發中常用的視圖切換有三種,今天我們將...

    執著丶執念5282021-01-16
  • IOSiOS開發技巧之狀態欄字體顏色的設置方法

    iOS開發技巧之狀態欄字體顏色的設置方法

    有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼...

    夢想家-mxj8922021-05-10
  • IOS詳解iOS中多個網絡請求的同步問題總結

    詳解iOS中多個網絡請求的同步問題總結

    這篇文章主要介紹了詳解iOS中多個網絡請求的同步問題總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    liang199111312021-03-15
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果的相關資料,需要的朋友可以參考下...

    jiangamh8882021-01-11
  • IOSiOS中MD5加密算法的介紹和使用

    iOS中MD5加密算法的介紹和使用

    MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數字字母混合碼。對輸入信息生成唯一的128位散列值(32個字符)。這篇文...

    LYSNote5432021-02-04
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

    iOS實現控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關于利用iOS如何實現控制屏幕常亮不變暗的方法,文中給出了詳細的...

    隨風13332021-04-02
  • IOSiOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)

    iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和

    這篇文章主要介紹了iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)的相關資料,需要的朋友可以參考下...

    CodingFire13652021-02-26
主站蜘蛛池模板: 久久精品亚洲一区二区三区观看模式 | 欧美视频国产 | 日本在线免费观看视频 | 5a级毛片| 12av毛片| 在线成人免费网站 | 国产精品.com | 性明星video另类hd | 国产九色在线播放九色 | 一区二区三区黄色 | 欧美色淫 | 国产一区二区视频网站 | 精品一区二区免费视频视频 | 99精品视频在线观看免费播放 | 午夜精品久久久久久中宇 | 亚洲第一综合 | 国产精品久久久不卡 | 成人午夜视频免费看 | 日韩在线毛片 | 草草影院地址 | 久久久久中精品中文字幕19 | 看片一区二区三区 | 在线免费日韩 | 成人在线观看一区 | 欧美一级黄色免费看 | 法国极品成人h版 | 99久久自偷自偷国产精品不卡 | 国产成人精品网站 | 欧美一级黄色片免费观看 | www.99热精品 | 一区二区三区四区五区中文字幕 | 国产精品久久久久久久久久 | 欧美毛片 | 午夜视频福利 | 日韩视频在线观看免费视频 | 国产精品99精品 | 国产成人精品午夜 | 一级成人欧美一区在线观看 | 中文字幕偷拍 | 亚洲人成网站在e线播放 | 深夜精品福利 |