iOS 如何執行HTTP POST 請求

2021-10-07 20:13:19 字數 4418 閱讀 5633

我正在接近ios開發,我想讓我的第乙個應用程式之一執行http post請求。

據我所知,我應該管理通過nsurlconnection物件處理請求的連線,這迫使我有乙個委託物件,而後者又處理資料事件。

有人可以通過乙個實際例子澄清這個任務嗎?

我應該聯絡https端點傳送身份驗證資料(使用者名稱和密碼)並獲取純文字響應。

iphone

objective-c

ios

2023年4月4日federico zancan

您可以按如下方式使用nsurlconnection:

設定nsurlrequest:使用requestwithurl:(nsurl *)theurl初始化請求。

如果需要指定post請求和/或http標頭,請使用nsmutableurlrequest

使用nsurlconnection以兩種方式傳送您的請求:

不要忘記設定nsurlconnection的委託來處理連線,如下所示:

- (void)connection:(nsurlconnection *)connection didreceiveresponse:(nsurlresponse *)response 

- (void)connection:(nsurlconnection *)connection didreceivedata:(nsdata *)d

- (void)connection:(nsurlconnection *)connection didfailwitherror:(nserror *)error

- (void)connectiondidfinishloading:(nsurlconnection *)connection

// handle basic authentication challenge if needed

- (void)connection:(nsurlconnection *)connection didreceiveauthenticationchallenge:(nsurlauthenticationchallenge *)challenge

2023年4月4日anh do

我強烈建議使用 asihttprequest庫 如果您正在處理https。即使沒有https,它也為這樣的東西提供了乙個非常好的包裝器,雖然通過簡單的http做自己並不難,我只是覺得這個庫很好並且是乙個很好的入門方式。

https的複雜性在各種情況下都是微不足道的,如果您想要在處理所有變體時都很健壯,那麼您會發現asi庫是乙個真正的幫助。

2023年4月4日roger

我想我會更新這篇文章,並說很多ios社群已經轉移到 afnetworkingasihttprequest被放棄後。我強烈推薦它。它是nsurlconnection的乙個很好的包裝器,允許非同步呼叫,基本上你可能需要的任何東西。

2023年5月15日jesse naugher

- (void)post ];

[postdatatask resume];

}-(void)urlsession:(nsurlsession *)session didreceivechallenge:(nsurlauthenticationchallenge *)challenge completionhandler:(void (^)( nsurlsessionauthchallengedisposition disposition, nsurlcredential *credential))completionhandler

或者更好的是,使用afnetworking 2.0+。通常我會將afhttpsessionmanager子類化,但我將這一切都放在乙個方法中以得到乙個簡潔的例子。

- (void)post  failure:^(nsurlsessiondatatask *task, nserror *error) ] resume];

}

如果您使用的是json響應序列化程式,則responseobject將是json響應中的物件(通常是nsdictionary或nsarray)。

2023年3月25日kyle robson

注意:pure swift 3(xcode 8)示例:請嘗試以下示例**。這是datataskurlsession函式的簡單示例。

func ******datarequest() 

//get the raw response string

let datastring = string(data: data!, encoding: string.encoding(rawvalue: string.encoding.utf8.rawvalue))

//print the response

print(datastring!)

}//resume the task

task.resume()

}

2023年10月20日dinesh

xcode 8和swift 3.0

使用urlsession:

let url = url(string:"download url")!

let req = nsmutableurlrequest(url:url)

let config = urlsessionconfiguration.default

let session = urlsession(configuration: config, delegate: self, delegatequeue: operationqueue.main)

let task : urlsessiondownloadtask = session.downloadtask(with: req as urlrequest)

task.resume()

urlsession委託呼叫:

func urlsession(_ session: urlsession, task: urlsessiontask, didcompletewitherror error: error?) 

func urlsession(_ session: urlsession, downloadtask: urlsessiondownloadtask,

didwritedata byteswritten: int64, totalbyteswritten writ: int64, totalbyte***pectedtowrite exp: int64)

func urlsession(_ session: urlsession, downloadtask: urlsessiondownloadtask, didfinishdownloadingto location: url)

使用塊get/post/put/delete:

}datatask.resume()對我來說工作正常..試試100%結果保證

2023年5月19日saumil shah

以下是使用nsurlsession的post http請求如何適用於ios 8+:

- (void)call_postnetworkingapi:(nsurl *)url withcompletionblock:(void(^)(id object,nserror *error,nsurlresponse *response))completion

}else

}];[task resume];

}

希望這將滿足您的以下要求。

iOS執行流程

3 開啟乙個訊息迴圈 5 載入info.plist檔案,讀取最主要storyboard檔案的名稱 6 載入最主要的storyboard檔案,建立白色箭頭所指的控制器物件 7 並且設定第6步建立的控制器為uiwindow的rootviewcontroller屬性 根控制器 8 展示uiwindow,展...

iOS 後台執行

應用可以在該方法中完成轉入後台前需要做的準備工作,所有的應用需要做以下事情。釋放所有可以釋放的記憶體。儲存使用者資料或狀態資訊,所有沒寫入磁碟的檔案或資訊,在進入後台之前,都應該寫入磁碟,因為程式可能在後台被殺死。當程式進入後台之後,為了確保獲得最佳的使用者體驗,建議釋放那些占用記憶體較大且可以重新...

ios那些事之如何在ios5上執行gdb

為啥要在ios上執行gdb?這個問題見仁見智嘍。對於搞開發的同學們來所,有了gdb更方便跟蹤分析別人的程式,取長補短 這裡不是教大家crack 執行環境 mac os 10.7.4 xcode 4.3.2 ios 5.0.1 jailbreak ipod 4 首先找到xcode中自帶的gdb 接著做...