如何创建HTTP连接并登录iPhone?

时间:2009-07-24 02:56:42

标签: iphone cocoa-touch

我正在尝试登录我的网站(www.trailbehind.com),然后发送POST请求以上传文件。

我尝试实现一些代码只是为了请求主页而不进行身份验证,我在此处找到:http://developer.apple.com/documentation/Networking/Conceptual/CFNetwork/CFHTTPTasks/CFHTTPTasks.html#//apple_ref/doc/uid/TP30001132-CH5-DontLinkElementID_10

然而,即使代码工作也没有,我不知道下一步该做什么。这是我试图请求主页的代码:

CFStringRef url = CFSTR("http://www.trailbehind.com/");
CFURLRef myURL = CFURLCreateWithString(kCFAllocatorDefault, url, NULL);
CFStringRef requestMethod = CFSTR("GET");
CFHTTPMessageRef myRequest = CFHTTPMessageCreateRequest(kCFAllocatorDefault, requestMethod, myURL, kCFHTTPVersion1_1);

CFStringRef bodyData = CFSTR(""); // Usually used for POST data    
CFHTTPMessageSetBody(myRequest, bodyData);

CFStringRef headerFieldName = CFSTR("X-My-Favorite-Field");
CFStringRef headerFieldValue = CFSTR("Dreams");
CFHTTPMessageSetHeaderFieldValue(myRequest, headerFieldName, headerFieldValue);
CFDataRef mySerializedRequest = CFHTTPMessageCopySerializedMessage(myRequest);

//get the page
CFReadStreamRef myReadStream = CFReadStreamCreateForHTTPRequest(kCFAllocatorDefault, myRequest);
CFReadStreamOpen(myReadStream);

CFHTTPMessageRef myResponse = CFReadStreamCopyProperty(myReadStream, kCFStreamPropertyHTTPResponseHeader);
UInt32 myErrCode = CFHTTPMessageGetResponseStatusCode(myResponse);
NSLog(@"%@", myResponse);   

CFRelease(myRequest);
CFRelease(myURL);
CFRelease(url);
CFRelease(mySerializedRequest);
myRequest = NULL;
mySerializedRequest = NULL;

2 个答案:

答案 0 :(得分:1)

您可能需要查看我对有关执行网络请求here的类似问题的回答。示例代码显示了如何使用NSURLRequest类来访问Web资源。它比使用CF代码容易得多:)

答案 1 :(得分:1)

看看ASIHTTPRequest。非常方便快速和脏的HTTP工作。

相关问题