iOS專案開發實戰——通過Http Get方式與伺服器通訊

乞力馬紮羅的雪CYF發表於2015-08-12

      移動客戶端往往需要同後臺伺服器進行通訊,上傳或者下載資料,最常用到的方式就是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  。歡迎大家訪問!

相關文章