网站后台管理系统素材,丽水哪里有做网站的公司4000-262-,建设心理网站,wordpress创建分类iPhone应用用HTTP协议和服务器通信是本文要介绍的内容#xff0c;主要是来学习iphone应用中的通信协议#xff0c;具体内容来看本文详解。iPhone用http协议和服务器通信有两种方式#xff0c;一种是同步一种是异步的#xff0c;所谓同步是指当客户端调用post/get的方式的函…iPhone应用用HTTP协议和服务器通信是本文要介绍的内容主要是来学习iphone应用中的通信协议具体内容来看本文详解。iPhone用http协议和服务器通信有两种方式一种是同步一种是异步的所谓同步是指当客户端调用post/get的方式的函数向服务器发出数据请求后该函数不会直接返回只有得到服务器响应或者请求时间timeout之后才会返回继续执行其它任务。异步采用回调的方式即请求发送后函数会立即返回一旦服务器联结成功操作系统会去触发相应的回调进行相应的处理。这和window的消息处理机制一样。同步一般用于一次性操作如判断当前网络是否可用等等。多的就不再一一介绍在实现上面有两点不同:(1)在用NSURLConnect的时候一个调用同步函数一个调用了异步函数。(2)异步的需要实现delegate的相关回调函数。以下是参考代码同步方式-(void)UpadaPost:(NSString *)strcontext URL:(NSString *)urlstr{NSLog(urlstr);NSLog(strcontext);assert(strcontext ! NULL);assert(urlstr ! NULL);NSData*postData[strcontextdataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];NSString *postLength [NSString stringWithFormat:%d, [postData length]];NSMutableURLRequest *request [[[NSMutableURLRequest alloc] init] autorelease];[request setURL:[NSURL URLWithString:urlstr]];[request setHTTPMethod:POST]; [request setTimeoutInterval: 20];//setting timeout[request setValue:postLength forHTTPHeaderField:Content-Length];[request setValue:application/x-www-form-urlencoded forHTTPHeaderField:Content-Type];[request setHTTPBody:postData];NSURLResponse *respone;NSError *error;NSData*myReturn[NSURLConnection sendSynchronousRequest:request returningResponse:responeerror:error];NSLog(%, [[NSString alloc] initWithData:myReturn encoding:NSUTF8StringEncoding]);}异步方式-(void)UpadaPost:(NSString *)strcontext URL:(NSString *)urlstr{NSLog(urlstr);NSLog(strcontext);assert(strcontext ! NULL);assert(urlstr ! NULL);NSData *postData [strcontext dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];NSString *postLength [NSString stringWithFormat:%d, [postData length]];NSMutableURLRequest *request [[[NSMutableURLRequest alloc] init] autorelease];[request setURL:[NSURL URLWithString:urlstr]];[request setHTTPMethod:POST]; [request setTimeoutInterval: 20];//setting timeout[request setValue:postLength forHTTPHeaderField:Content-Length];[request setValue:application/x-www-form-urlencoded forHTTPHeaderField:Content-Type];[request setHTTPBody:postData];NSURLConnection *conn[[NSURLConnection alloc] initWithRequest:request delegate:self];if (conn){NSLog(Connection success);[UIApplication sharedApplication].networkActivityIndicatorVisibleYES;[conn retain];}else{// inform the user that the download could not be made}}#pargma mark以下为相应的回调函数// 收到响应时, 会触发- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {// 注意这里将NSURLResponse对象转换成NSHTTPURLResponse对象才能去NSHTTPURLResponse *httpResponse (NSHTTPURLResponse*)response;if ([response respondsToSelector:selector(allHeaderFields)]) {NSDictionary *dictionary [httpResponse allHeaderFields];NSLog([dictionary description]);NSLog(%d,[response statusCode]);}}//链接错误- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {//[self performSelectorOnMainThread:selector(httpConnectEnd) withObject:nil waitUntilDone:NO];NSLog(%,[error localizedDescription]);}// Called when a chunk of data has been downloaded.//接收数据 每收到一次数据, 会调用一次- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {// Process the downloaded chunk of data.NSLog(%d, [data length]);//NSLog(%, [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);//[self performSelectorOnMainThread:selector(updateProgress) withObject:nil waitUntilDone:NO];}//接收结束- (void)connectionDidFinishLoading:(NSURLConnection *)connection {NSLog(%,connection);//NSLog(%lld, received_);//[self performSelectorOnMainThread:selector(httpConnectEnd) withObject:nil waitUntilDone:NO];// Set the condition which ends the run loop.}小结iPhone应用用HTTP协议和服务器通信的内容介绍完了希望通过本文的学习能对你有所帮助【编辑推荐】【责任编辑李程站 TEL(010)68476606】点赞 0