发送同步请求模块
发布日期:2021-05-09 22:29:27 浏览次数:17 分类:精选文章

本文共 4773 字,大约阅读时间需要 15 分钟。

Objective-C HTTP ���������������������������������

���Objective-C������������������HTTP���������������������������������������������������������������������������������������������������������������������������������������������������������HTTP���������������

������������������

HTTP������������������������������������������������������������������NSURLConnection������������

������������

������������������NSURLRequest������requestWithURL:������������������������������������HTTP���������������������������������������������������NSURLRequest������������������NSURLConnection������������������������������������������������������������������������������������������������������������������������

������NSURLConnection���������������������

���������������������������������NSURLConnection������sendSynchronousRequest���������������������������������������������������������������������������������������������������������������������������������������������������������

@interface chttpSendSynchronousRequest : NSObject
- (void)sendHttpRequest:(NSString*)sendString : (NSInteger *)resultCode : (NSString **)recvData;
@end
@implementation chttpSendSynchronousRequest
- (void)sendHttpRequest:(NSString*)sendString : (NSInteger *)resultCode : (NSString **)recvData {
if (nil == serverUrl || nil == sendString) {
*resultCode = -1;
recvData = nil;
return;
}
NSURL *serverUrl = [NSURL URLWithString:serverUrl];
NSLog(@"%@", sendString);
NSError *error = nil;
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:serverUrl
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:60];
[request setHTTPMethod:@"POST"];
[request setValue:@"text/html" forHTTPHeaderField:@"Content-Type"];
NSString *sendData = sendString;
NSData *postData = [sendData dataUsingEncoding:NSUTF8StringEncoding
allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
NSInputStream *inputStream = [NSInputStream inputStreamWithData:postData];
[request setHTTPBodyStream:inputStream];
NSData *recvData = [NSURLConnection sendSynchronousRequest:request
returningResponse:nil
error:&error];
if (error) {
*resultCode = -1;
recvData = nil;
return;
}
NSString *recvStr = [[NSString alloc] initWithData:recvData encoding:NSUTF8StringEncoding];
if (!recvStr) {
*resultCode = -1;
recvData = nil;
return;
}
NSLog(@"������������������%@", recvStr);
*recvData = recvStr;
*resultCode = 0;
}
@end

������������

���������������NSURLConnection������������������������������������

@interface DownsLoader : NSObject
@property (nonatomic, strong) NSURLConnection *connection;
@property (nonatomic, retain) NSMutableData *data;
@property (assign) NSString *fileName;
@end
- (void)downloadImgFromUrl:(NSURL*)url {
self.data = [NSMutableData data];
self.fileName = [self filePath:@"image.jpg"];
self.connection = [[NSURLConnection alloc] initWithRequest:
[NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0]
delegate:self];
}
- (void)connection:(NSURLConnection *)conn didReceiveData:(NSData*)data {
[self.data appendBytes:data];
LogInfo(@"������������ %d ������������", self.data.length);
[data writeToFile:self.fileName atomically:YES];
}
- (void)connection:(NSURLConnection *)conn didFailWithError:(NSError*)error {
[self.data setLength:0];
}
- (void)connectionDidFinishLoading:(NSURLConnection*)conn {
LogInfo(@"������������������������ %d ������������", self.data.length);
}

���������������������

  • ������������������������������������������Content-Length������������������������������������������������������������

  • ���������������������������������������������������������������������������������������������

  • ���������������������������������������������������������������200���������������������������������������������������������

  • ������

    ������������������������������������������Objective-C���HTTP���������������������������������������������������������������NSURLConnection���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    上一篇:socket长连接所用到的八大技术
    下一篇:自己实现异步发送请求和图片

    发表评论

    最新留言

    路过按个爪印,很不错,赞一个!
    [***.219.124.196]2025年04月13日 10时17分57秒