1. 程式人生 > >iOS原生Http請求,get post 非同步

iOS原生Http請求,get post 非同步

網上有個公開的天氣介面:天氣 ,點進其中的getSupportCityDataset介面,用這個介面為例寫一下iOS上的HTTP請求的寫法。 這裡面提供了get、post請求的格式要求。

1、get:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 NSURL * URL = [NSURL URLWithString:[URLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURLRequest * request = [[NSURLRequest alloc]initWithURL:URL]; NSURLResponse * response = nil; NSError * error = nil; NSData * data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; if (error) { NSLog(@"error: %@",[error localizedDescription]);
}else{ NSLog(@"response : %@",response); NSLog(@"backData : %@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]); } </span>
get方法的請求引數是放在長長的URL字串裡面,這裡只需要一個引數,就是地區的編號或名字,通過這個引數,伺服器返回屬於這個區域內支援天氣查詢的城市列表。如果有更多的引數也是放在URL字串裡面,至於引數的組織方式,就看伺服器的要求了。

用字串構建NSURL,最好在使用URLWithString的時候把原字串進行一下UTF8轉碼,關於為何要轉碼,看下這裡第一部分。然後NSURL物件構建NSURLRequest,使用NSURLConnection的同步方法,傳入request物件就可以通過get方法獲取資料。

這裡有個NSError物件地址傳入,用於做錯誤判斷,網路的實際情況是多變的,必須要考慮請求錯誤的情況,否則可能導致程式奔潰。

2、post:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 NSURL * URL = [NSURL URLWithString:[URLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; NSString * postString = @"theRegionCode=廣東"; NSData * postData = [postString dataUsingEncoding:NSUTF8StringEncoding];  //將請求引數字串轉成NSData型別 NSMutableURLRequest * request = [[NSMutableURLRequest alloc]init]; [request setHTTPMethod:@"post"]; //指定請求方式 [request setURL:URL]; //設定請求的地址 [request setHTTPBody:postData]; 

相關推薦

iOS原生Http請求get post 非同步

網上有個公開的天氣介面:天氣 ,點進其中的getSupportCityDataset介面,用這個介面為例寫一下iOS上的HTTP請求的寫法。 這裡面提供了get、post請求的格式要求。 1、get: ? 1 2

http 請求get,post,put請求方式《利用HttpClient》

簡介:利用nginx 跳過證書,然後java程式碼呼叫nginx 工具類請求程式碼: /** * httpClient的get請求方式 * * @return * @throws Exception */ public String doGe

http請求get請求和post請求體以及響應體

一、http請求 1.Http請求格式 Http請求即客戶端傳送給伺服器的請求。該請求的內容格式如下所示: 請求首行 請求頭資訊 空行 請求正文,也稱請求體 2.使用HttpWatch抓包工具 請求資訊詳細內容如下: GET /Example03/ HTTP/1.1 Acc

C/C++使用libcurl庫發送http請求getpost可以用於請求html信息也可以請求xml和json等串)

網絡連接 get 編譯 eas views vs2015 return tar linux C++要實現http網絡連接,需要借助第三方庫,libcurl使用起來還是很方便的 環境:win32 + vs2015 如果要在Linux下使用,基本同理 1,下載

http協議請求getpost的區別與聯絡

                 網路通訊中HTTP協議詳解 一、什麼是HTTP協議     HTTP協議全稱:HyperText Transfer Protocol 是一種超文字傳輸協議,通過UR

HTTP請求判斷get提交還是post提交

題目:                判斷方法一:使用者名稱,密碼輸入內容123,點選提示按鈕,觀察上面提示欄的資訊(username和password的值):  1、如果是這樣:        username和password均有輸入值,則是get提交; 2、如果是這樣 

Python:HTTP請求模組(httplib/urllibGET/POSTphp)Web伺服器模組

一、HTTP請求模組 1.1 模組及區別         模組:                 httplib、 httplib2                 urllib、urllib2         區別:                 2是1的加強版,htt

iOS 原生NSURLSession 簡單的 GETPOST 請求

//  WsqflyNetWorking.h //  WSQNetWorkingSystem // //  Created by webapps on 16/12/28. //  Cop

HttpClient發送Post請求get請求

人的 new ole 大神 put blog cli 請求 pre // 創建默認的httpclient實例 CloseableHttpClient httpclient = getHttpClient(); CloseableHttpRe

HTTP 請求GETPOST 方式的區別

瀏覽器 tro 名稱 安全 data 回文 部分 strong 長度 HTTP 請求的 GET 與 POST 方式的區別 在客戶機和服務器之間進行請求-響應時,兩種最常被用到的方法是:GET 和 POST。 GET - 從指定的資源請求數據。 POST - 向指定的資源提

HTTP請求getpost的區別是什麽

信息 兩種 緩存 數據 request 取數 安全性 body 數據類型 GET和POST是Http請求中最常用的兩種請求方法 首先介紹GET與POST的差異:   (1)GET請求資源數據,POST向服務器傳遞需要處理的數據   (2)GET傳遞數據大小不超過2kb,PO

HTTP 請求POST方式把一個對象序列化成JSON樣式作為參數訪問服務器

HTTP請求 序列化對象轉JSON public static string Login(Login login){HttpWebRequest request;WebResponse response;string remoteAddress = ConfigurationManager.AppSe

curl 模擬 http發送get/post請求

cati head sdn 方法 header local detail cat admin 參考https://blog.csdn.net/u012340794/article/details/71440604 使用curl 發送GET請求 curl http://l

Javaget/post請求

final req cat lin jit tde 遍歷 fault sco URLConnection package com.shuzf.http; import java.io.BufferedReader; import java.io.IOException;

HTTP請求GETPOST 方式的區別

Http 定義了與伺服器互動的不同方法,最基本的方法有 4 種,分別是 GET,POST,PUT,DELETE。 URL 全稱是資源描述符,我們可以這樣認為:一個 URL 地址,它用於描述一個網路上的資源,而 HTTP 中的 GET,POST,PUT,DELETE 就對應著

HTTP請求方式GETPOST的區別詳解

HTTP有兩部分組成:請求與響應,下面分別整理。 一.HTTP請求 1.HTTP請求格式: <request line> <headers> <blank line> [<request-body>] 在HTTP請

連網工具類get,post請求

public class HttpHelper { private final int HTTP_SECCESS=2000; private final int HTTP_FAIL=2001; private HttpListener listener; p

HTTP 請求GetPost 區別

一、原理區別 一般我們在瀏覽器輸入一個網址訪問網站都是GET請求;再FORM表單中,可以通過設定Method指定提交方式為GET或者POST提交方式,預設為GET提交方式。 HTTP定義了與伺服器互動的不同方法,其中最基本的四種:GET,POST,PUT,DELETE,H

HTTP請求GETPOST的分析

近期一位朋友想寫iOS上的應用,打算從微博應用做起,第一步先做一個微部落格戶端出來,然後做一個手機微博應用出來,具體做什麼還不甚清楚,其實是在嘗試中。而我正好在用asio寫網路庫,於是主動提出了承擔web伺服器網路庫的部分,也是為了給我自己封裝的網路庫中增加一個http模組。http大家都不陌生,每天開啟網頁

HTTP 請求方式: GETPOST的比較

什麼是HTTP? 超文字傳輸協議(HyperText Transfer Protocol -- HTTP)是一個設計來使客戶端和伺服器順利進行通訊的協議。 HTTP在客戶端和伺服器之間以request-response protocol(請求-回覆協議)工作。 GET