ios网络请求代码
隱藏了真實的服務器IP 1、采用CFHTTPMessage等
| ?CFURLRef myWebserverURLRef = CFURLCreateWithString(kCFAllocatorDefault, CFSTR("http://192.168.0.1234"), NULL);if(myWebserverURLRef != NULL){// Create the HTTP messageCFHTTPMessageRef theMessageRef = CFHTTPMessageCreateRequest(kCFAllocatorDefault, CFSTR("POST"), myWebserverURLRef, kCFHTTPVersion1_1);if(theMessageRef != NULL){// Set useful headersCFHTTPMessageSetHeaderFieldValue(theMessageRef, CFSTR("Accept"), CFSTR("application/xml;text/vnd.wap.wml;text/*,image/jpeg"));CFHTTPMessageSetHeaderFieldValue(theMessageRef, CFSTR("Content-type"), CFSTR("application/html"));CFHTTPMessageSetHeaderFieldValue(theMessageRef, CFSTR("Host"),CFSTR("192.168.0.1:1234"));CFHTTPMessageSetHeaderFieldValue(theMessageRef, CFSTR("Connection"),CFSTR("Close"));CFHTTPMessageSetHeaderFieldValue(theMessageRef, CFSTR("Accept-Charset"),CFSTR("utf-8;q=0.7,*;q=0.7"));CFHTTPMessageSetHeaderFieldValue(theMessageRef, CFSTR("Content-Length"),CFSTR("688"));// The bodyNSString* filepath = [[NSString alloc] initWithFormat:@"%@/body.txt",[[NSBundle mainBundle] bundlePath]];NSData *body = [NSData dataWithContentsOfFile:filepath];CFHTTPMessageSetBody(theMessageRef, (CFDataRef)body);// Create the CFReadStreamRefstreamRef = CFReadStreamCreateForHTTPRequest(kCFAllocatorDefault, theMessageRef);if(streamRef != NULL){ if(true){int myHTTPSProxyPortNumber = 80;CFTypeRef keys[2], values[2];keys[0] = kCFStreamPropertyHTTPProxyHost;values[0] = CFSTR("10.0.0.172");keys[1] = kCFStreamPropertyHTTPProxyPort;values[1] = CFNumberCreate(NULL, kCFNumberSInt32Type, &myHTTPSProxyPortNumber);CFDictionaryRef proxyDict = CFDictionaryCreate(NULL, keys, values, 2, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);CFReadStreamSetProperty(streamRef, kCFStreamPropertyHTTPProxy, proxyDict);}CFStreamClientContext streamcontext = {0, self, NULL, NULL, NULL};CFOptionFlags eventflags = kCFStreamEventOpenCompleted | kCFStreamEventHasBytesAvailable | kCFStreamEventEndEncountered | kCFStreamEventErrorOccurred;if (!CFReadStreamSetClient(streamRef, eventflags, ReadStreamClientCallBack, &streamcontext)){return ;}CFReadStreamScheduleWithRunLoop(streamRef, CFRunLoopGetCurrent(), kCFRunLoopCommonModes); |
2、采用 NSURL
| ?NSURL *url = [NSURL URLWithString:@"http://192.168.0.1:1234/"];NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];[request setURL: url ];NSString* filepath = [[NSString alloc] initWithFormat:@"%@/body.txt",[[NSBundle mainBundle] bundlePath]];NSData *body = [NSData dataWithContentsOfFile:filepath];[filepath release];[request setHTTPBody: body];[request setHTTPMethod: @"POST"];//特別感謝xuepomh指正[request setValue:@"Close" forHTTPHeaderField:@"Connection"];[request setValue:@"192.168.0.1:1234" forHTTPHeaderField:@"Host"];[request setValue:@"688" forHTTPHeaderField:@"Content-Length"];NSURLConnection *urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:true]; |
3\socket
| ?connect() send() while(1) { recv() } |
轉載于:https://www.cnblogs.com/hellocby/archive/2012/11/09/2762447.html
總結
- 上一篇: 8086汇编学习小记-王爽汇编语言实验1
- 下一篇: assertThat的使用方法