NSMutableURLRequest将数据发布到URL

时间:2014-01-07 08:51:34

标签: ios objective-c nsurlconnection nsurlrequest nsmutableurlrequest

我目前正在使用以下代码尝试NSMutableURLRequest。

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

我不知道如何实际发起帖子。什么实际上在URL处激活它?我有一切设置,但* conn尚未使用,所以我如何使用* conn?

3 个答案:

答案 0 :(得分:1)

创建NSURLConnection将触发连接。

现在你必须实现回调,尤其是。 connectionDidFinishLoading获得结果。

以下是NSURLConnectionDataDelegate的方法。来自NSURLConnection initWithRequest:delegate:文档:

  

<强>讨论
  这相当于调用initWithRequest:delegate:startImmediately:并为startImmediately传递YES。

答案 1 :(得分: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"];

答案 2 :(得分:0)

您可以通过多种方式启动NSURLConnection

[NSURLConnection initWithRequest:postRequest delegate:self];
  

返回初始化的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:];

您可以直接使用阻止作为回调。