当前位置:  开发笔记 > 编程语言 > 正文

Cocoa:NSURLConnection没有尝试HTTP请求

如何解决《Cocoa:NSURLConnection没有尝试HTTP请求》经验,为你挑选了1个好方法。

NSURL,NSURL [Mutable] Request,NSURLConnection和我的iPhone应用程序取得了巨大的成功.当试图编译一个独立的Cocoa应用程序,10行程序来做一个简单的HTTP请求时,没有编译器错误或警告.程序编译得很好,但HTTP请求永远不会发送到我的Web服务器(我正在运行tcpdump并且并行查看Apache日志).当我在iPhone应用程序中运行非常相似的代码时,基本上复制/粘贴就像那样邪恶,所有都是金色的.

为了简单起见,我将代码中的'obj'声明的代码保存在NSURLConnection中.我也将以下内容传递给gcc:

gcc -o foo foo.m -lobjc -framework cocoa

感谢您的任何见解.

#import 

int main (int argc, char *argv[])
{    

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString * urlstr = @"http://tmp/test.php";
[NSApplication sharedApplication];
NSObject *obj = [[NSObject alloc] init];
NSURL *url = [NSURL URLWithString: urlstr];      
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];

    if([request isKindOfClass:[NSMutableURLRequest class]])
    NSLog(@"request is of type NSMutableURLRequest");


[request setHTTPMethod:@"GET"];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData];
NSURLConnection *connection = [[NSURLConnection alloc]
                             initWithRequest:request
                     delegate:obj
                 startImmediately:YES];

if(connection) 
    NSLog(@"We do have a connection.");

[pool release];
return 0;

}



1> Jason Coco..:

另一张海报几乎为你回答了这个问题,但我想我会添加一些东西.

首先,你真的不需要链接到Cocoa,只需链接到Foundation框架就可以了.此外,由于您不需要连接到Window Server,因此可以删除[NSApplication sharedApplicaiton]调用.如果您只想要一个简单的控制台测试应用程序,请使用您现在拥有的并在[pool realease]调用之前添加它:

[[NSRunLoop currentRunLoop] run];

但请注意,这将阻止,实际上可能永远不会返回.在调用此函数之前,如果您希望代码在后台实际执行某些操作,则可以添加计时器:)有关使用此方法的更多方法,请参阅NSRunLoop上的文档.

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有