0

我目前使用下面的代碼嘗試在NSMutableURLRequest。NSMutableURLRequest發佈數據到URL

NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:allStrings]]; 
[postRequest setHTTPMethod:@"POST"]; 
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:postRequest delegate:self]; 

我不知道如何實際發起帖子。究竟是什麼在URL上觸發它?我有一切設置,但* conn尚未使用,所以我如何使用* conn?

回答

1

創建NSURLConnection將觸發連接。

現在你必須實現回調, connectionDidFinishLoading以獲得結果。

以下是NSURLConnectionDataDelegate的方法。從NSURLConnectioninitWithRequest:delegate:文檔:

討論
這等同於調用initWithRequest:委託:startImmediately:和傳球是爲startImmediately。

+0

我不需要獲取任何信息,因此將NSURLConnection放在(void)前是否安全? – daemon

+0

只是不要分配結果。 '[[NSURLConnection alloc ...' – Mundi

0
NSURL *url = [NSURL URLWithString:urlString]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
0

你有很多的方式來啓動一個NSURLConnection

[NSURLConnection initWithRequest:postRequest delegate:self]; 

返回初始化的URL連接,並開始裝入數據 URL請求。

所以它的怪異有一個未使用的變量,你可以手動啓動它:

NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:postRequest delegate:self startImmediatly:NO]; 
[conn start]; 

還是沒有得到結果

[[NSURLConnection alloc] initWithRequest:postRequest delegate:self]; 

甚至更​​好保留NSURLConnection的,它存儲在屬性:

self.URLConnection = [[NSURLConnection alloc] initWithRequest:postRequest delegate:self]; 

請注意有現在兩個方便的助手方法:

[NSURLConnection sendSynchronousRequest:returningResponse:error:]; 

它返回一個NSData

[NSURLConnection sendAsynchronousRequest:queue:completionHandler:]; 

您可以直接使用塊作爲回調。