네트워크 요청 처리
GET:
// 1. OC
NSString *urlStr = [NSString stringWithFormat:@"%@?query=%@®ion=%@&output=json&ak=6E823f587c95f0148c19993539b99295", kBusinessInfoURL, @" ", @" "];
// , URLEncode
NSString *newUrlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
// 2. URL , NSURL
NSURL *url = [NSURL URLWithString:newUrlStr];
// 3.
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10];
//
NSURLResponse *response = nil;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
POST:
// 1. OC
NSString *urlStr = [NSString stringWithFormat:@"%@", kVideoURL];
// 2. NSURL
NSURL *url = [NSURL URLWithString:urlStr];
// 3.
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
// 4.
NSString *parmStr = @"method=album.channel.get&appKey=myKey&format=json&channel=t&pageNo=1&pageSize=10";
// 5. NSData
NSData *pramData = [parmStr dataUsingEncoding:NSUTF8StringEncoding];
// 6.
[request setHTTPBody:pramData];
// 7.
[request setHTTPMethod:@"POST"];
//
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
GET
NSString *urlStr = [NSString stringWithFormat:@"http://image.zcool.com.cn/56/13/1308200901454.jpg"]; NSString *newStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:newStr];
NSURLRequest *requst = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10];
// ( 1, )
[NSURLConnection sendAsynchronousRequest:requst queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
self.imageView.image = [UIImage imageWithData:data];
//
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSLog(@"%@", dic);
}];
POST
// POST
NSString *urlString = [NSString stringWithFormat:@"%@",kVideoURL];
// url
NSURL *url = [NSURL URLWithString:urlString];
//
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10];
//
NSString *parmStr = [NSString stringWithFormat:@"method=album.channel.get&appKey=myKey&format=json&channel=t&pageNo=1&pageSize=10"];
// NSData
NSData *data = [parmStr dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data];
[request setHTTPMethod:@"POST"];
// ( )
[NSURLConnection connectionWithRequest:request delegate:self];
, , 。 NSURLConnectionDataDelegate, :
//
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
}
// ,
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
}
// ,
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
}
//
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"%s", __FUNCTION__);
}
GET POST :
1. GET , , ? 。POST , , , 。
2. GET , 。 POST 。
3. GET POST , GET ,POST 。
:
: , , , 。
: , , 。
// ; :
iOS HTTP URL Encode, http://unmi.cc?p1=%+&sd f&p2= , 、 &% 。
Java、.net JS encodeURL , Objective-C ,
- (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)enc;
URL( ) , :
NSString *url=@"http://unmi.cc?p1=%+&sd &p2= ";
NSString *encodedValue = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
encodedValue :
http://unmi.cc?p1=%+&sd &p2=
, URL ?%& , , & , , URL ?%& 。
, , URL:
CF_EXPORT
CFStringRef CFURLCreateStringByAddingPercentEscapes(CFAllocatorRef allocator, CFStringRef originalString, CFStringRef charactersToLeaved, CFStringRef legalURLCharactersToBeEscaped, CFStringEncoding encoding);
, p1=%+&sd f&p2= , :
NSString *param = @"%+&sd f";
NSString *encodedValue = (NSString*)CFURLCreateStringByAddingPercentEscapes(nil,
(CFStringRef)param, nil,
(CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8);
encodedValue %+&sd f, ?%& 。 “ ” : , 。
CFURLCreateStringByAddingPercentEscapes 。
ASIHTTPRequest URL , ASIFormDataRequest :
- (NSString*)encodeURL:(NSString *)string
{
NSString *newString = NSMakeCollectable([(NSString *)CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,
(CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;="<>%{}|\\^~`"),
CFStringConvertNSStringEncodingToEncoding([self stringEncoding])) autorelease]);
if (newString) {
return newString;
}
return @"";
}
Objective-C encodeURL , , ASIFormDataRequest , ASIHTTPRequest 。 :
ASIFormDataRequest *formDataRequest = [ASIFormDataRequest requestWithURL:nil];
NSString *encodedValue1 = [formDataRequest encodeURL:@"%+&sd f"];
NSString *encodedValue2 = [formDataRequest encodeURL:@" "];
encodedValue1 encodedValue2 %+&sd f , , ASIFormDataRequest URLEncode, 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.