iOS專案開發實戰——通過Http Get方式與伺服器通訊
移動客戶端往往需要同後臺伺服器進行通訊,上傳或者下載資料,最常用到的方式就是Http Get,現在我們來學習在iOS專案中使用Get方式同伺服器進行通訊。
【一】伺服器端實現
(1)首先要安裝好能進行J2EE開發的Eclipse或者MyEclipse,配置好Tomcat環境。我這裡使用Eclipse Mars,Tomcat版本為8. 然後新建一個Dynamic Web Project。名稱為MyServer。然後在WebContent中新建一個JSP File。名稱為index.當前目錄結構如下:
。
(2)然後在Hello.jsp中實現如下:對於客戶端的請求,我將會返回“Hello 名字”,否則返回No Paras.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String name = request.getParameter("name");
if (name != null) {
out.print("Hello " + name);
} else {
out.print("No Paras");
}
%>
(3)直接點選執行,或者在瀏覽器中輸入url,結果如下:
。
【二】iOS客戶端實現
(1)新建一個iOS專案,Language選擇Swift。然後在storyboard中設計介面如下:
。
(2)然後分別進行控制元件和程式碼的繫結,輸入框TextField和顯示返回結果的TextView進行Outlets繫結,傳送按鈕進行Action繫結;最後實現程式碼如下:
@IBOutlet weak var inputName: UITextField!
@IBOutlet weak var feedbackInfo: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func connectServer(sender: UIButton) {
NSURLConnection.sendAsynchronousRequest(NSURLRequest(URL: NSURL(string: "http://localhost:8080/MyServer/Hello.jsp?name=\(inputName.text)")!),
queue: NSOperationQueue()) { (resp:NSURLResponse!, data:NSData!, error:NSError!) -> Void in
if let d = data{
dispatch_sync(dispatch_get_main_queue(), { () -> Void in
self.feedbackInfo.text = String(NSString(data: d, encoding: NSUTF8StringEncoding)!)
})
}
}
}
其中按鈕的點選事件也可以是下面的形式:
@IBAction func connectServer(sender: UIButton) {
NSURLConnection.sendAsynchronousRequest(NSURLRequest(URL: NSURL(string: "http://localhost:8080/MyServer/Hello.jsp?name=\(inputName.text)")!),
queue: NSOperationQueue.mainQueue()) { (resp:NSURLResponse!, data:NSData!, error:NSError!) -> Void in
if let d = data{
self.feedbackInfo.text = String(NSString(data: d, encoding: NSUTF8StringEncoding)!)
}
}
}
(3)執行程式,實現效果如下:
.
github主頁:https://github.com/chenyufeng1991 。歡迎大家訪問!
相關文章
- iOS app之間通訊方式iOSAPP
- Laravel 中使用 swoole 專案實戰開發案例一 (建立 swoole 和前端通訊)Laravel前端
- 通過手寫伺服器的方式,立體學習Http伺服器HTTP
- Electron-vue開發實戰4——通過CI釋出以及更新的方式Vue
- Android 傳送HTTP GET POST 請求以及通過 MultipartEntityBuilder 上傳檔案(二)AndroidHTTPUI
- 網路通訊5:執行HTTP的GET/POST請求HTTP
- 網路通訊6:搭建HTTP伺服器HTTP伺服器
- 通過 App Groups 實現程式間通訊APP
- “京滬幹線”專案通過驗收,提供量子保密通訊技術
- 程序通訊方式
- RabbitMQ實戰:理解訊息通訊MQ
- ios端app讀取iphone檔案(通過itunes實現)iOSAPPiPhone
- 串列埠通訊與其他通訊方式相比有什麼優勢?串列埠
- 工作筆記——CPLD與MCU通過SPI通訊筆記
- HTTP通訊協議HTTP協議
- 實現客戶端與服務端的HTTP通訊客戶端服務端HTTP
- 影片通訊近實時生成字幕專案實踐
- Flutter與webview通訊橋樑開發FlutterWebView
- Python爬蟲開發與專案實戰pdfPython爬蟲
- Python爬蟲開發與專案實戰(2)Python爬蟲
- Python爬蟲開發與專案實戰(1)Python爬蟲
- iOS開發——專案實戰總結&UITableView效能優化與卡頓問題iOSUIView優化
- 視訊教程-Python網路爬蟲開發與專案實戰-PythonPython爬蟲
- 驅動開發:透過應用堆實現多次通訊
- 驅動開發:透過MDL對映實現多次通訊
- Vue 實戰專案:koa+typescript+MySQL+Vue+socket.io 搭建即時通訊 IM 伺服器及 UIVueTypeScriptMySql伺服器UI
- [譯] React Native 與 iOS 和 Android 通訊React NativeiOSAndroid
- flask 專案開發實戰Flask
- 通過VuePress管理專案文件(一)Vue
- 通過VuePress管理專案文件(二)Vue
- 利用jitpack.io釋出Android、Java專案,通過gradle方式引用AndroidJavaGradle
- 程式通訊方式總結與盤點
- 劍走偏鋒之Vue 元件通訊(一)—通過$parent和$children構建自己的通訊方式Vue元件
- JAVA通訊(二)——實現客戶機和伺服器通訊Java伺服器
- Vue元件通訊方式Vue元件
- iOS實現XMPP通訊(一)搭建OpenfireiOS
- 通過專案梳理vuex模組化 與vue元件管理Vue元件
- 通過 Github Action 釋出 SpringBoot Docker 專案到雲伺服器GithubSpring BootDocker伺服器
- DAPP區塊鏈即時通訊系統開發(功能詳情)丨DAPP即時通訊系統開發(原始碼專案)APP區塊鏈原始碼