ios之同步請求、非同步請求、get請求、post請求
1、同步請求可以從網際網路請求資料,一旦傳送同步請求,程式將停止使用者互動,直至伺服器返回資料完成,才可以進行下一步操作,
2、非同步請求不會阻塞主線程,而會建立乙個新的執行緒來操作,使用者發出非同步請求後,依然可以對ui進行操作,程式可以繼續執行
3、get請求,將引數直接寫在訪問路徑上。操作簡單,不過容易被外界看到,安全性不高,位址最多255位元組;
4、post請求,將引數放到body裡面。post請求操作相對複雜,需要將引數和位址分開,不過安全性高,引數放在body裡面,不易**獲。
1、 同步get請求
//第一步,建立url
nsurl *url = [nsurl urlwithstring:@""];
//第二步,通過url建立網路請求
nsurlrequest *request = [[nsurlrequest alloc]initwithurl:url cachepolicy:nsurlrequestuseprotocolcachepolicy timeoutinterval:10];
//nsurlrequest初始化方法第乙個引數:請求訪問路徑,第二個引數:快取協議,第三個引數:網路請求超時時間(秒)
其中快取協議是個列舉型別包含:
nsurlrequestuseprotocolcachepolicy(基礎策略)
nsurlrequestreloadignoringlocalcachedata(忽略本地快取)
//第三步,連線伺服器
nsdata *received = [nsurlconnection sendsynchronousrequest:request returningresponse:nil error:nil];
nsstring *str = [[nsstring alloc]initwithdata:received encoding:nsutf8stringencoding];
nslog(@"%@",str);
2、同步post請求
//第一步,建立url
nsurl *url = [nsurl urlwithstring:@""];
//第二步,建立請求
nsmutableurlrequest *request = [[nsmutableurlrequest alloc]initwithurl:url cachepolicy:nsurlrequestuseprotocolcachepolicy timeoutinterval:10];
[request sethttpmethod:@"post"];//設定請求方式為post,預設為get
nsstring *str = @"type=focus-c";//設定引數
//第三步,連線伺服器
nsdata *received = [nsurlconnection sendsynchronousrequest:request returningresponse:nil error:nil];
nsstring *str1 = [[nsstring alloc]initwithdata:received encoding:nsutf8stringencoding];
nslog(@"%@",str1);
3、非同步get請求
//第一步,建立url
nsurl *url = [nsurl urlwithstring:@""];
//第二步,建立請求
nsurlrequest *request = [[nsurlrequest alloc]initwithurl:url cachepolicy:nsurlrequestuseprotocolcachepolicy timeoutinterval:10];
//第三步,連線伺服器
nsurlconnection *connection = [[nsurlconnection alloc]initwithrequest:request delegate:self];
4、非同步post請求
//第一步,建立url
nsurl *url = [nsurl urlwithstring:@""];
//第二步,建立請求
//第三步,連線伺服器
nsurlconnection *connection = [[nsurlconnection alloc]initwithrequest:request delegate:self];
5、非同步請求的**方法
//接收到伺服器回應的時候呼叫此方法
//接收到伺服器傳輸資料的時候呼叫,此方法根據資料大小執行若干次
-(void)connection:(nsurlconnection *)connection didreceivedata:(nsdata *)data
//資料傳完之後呼叫此方法
-(void)connectiondidfinishloading:(nsurlconnection *)connection
nsstring *receivestr = [[nsstring alloc]initwithdata:self.receivedata encoding:nsutf8stringencoding];
nslog(@"%@",receivestr);
//網路請求過程中,出現任何錯誤(斷網,連線超時等)會進入此方法
-(void)connection:(nsurlconnection *)connection
didfailwitherror:(nserror *)error
nslog(@"%@",[error localizeddescription]);
資料處理 流資料處理利器
流處理 stream processing 是一種計算機程式設計正規化,其允許給定乙個資料序列 流處理資料來源 一系列資料操作 函式 被應用到流中的每個元素。同時流處理工具可以顯著提高程式設計師的開發效率,允許他們編寫有效 乾淨和簡潔的 流資料處理在我們的日常工作中非常常見,舉個例子,我們在業務開發...
爬蟲 資料處理 pandas資料處理
使用duplicated 函式檢測重複的行,返回元素為布林型別的series物件,每個元素對應一行,如果該行不是第一次出現,則元素為true keep引數 指定保留哪一重複的行資料 dataframe替換操作 使用df.std 函式可以求得dataframe物件每一列的標準差 資料清洗清洗重複值 清...
資料處理 pandas資料處理優化方法小結
資料處理時使用最多的就是pandas庫,pandas在資料處理方面很強大,整合了資料處理和資料視覺化。pandas的視覺化使用的是matplotlib。回到主題 計算資料的某個欄位的所有值,對其欄位所有值進行運算 處理的字段資料為時間戳,需要計算該時間戳距離現在的時間,單位為天。一般方法 使用現在的...