我正在接近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)示例:請嘗試以下示例**。這是datatask
的urlsession
函式的簡單示例。
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 接著做...