2010-11-24 10 views

cevap

79

Sana NSURLRequest HTTP Başlıkları değiştirebilir sanmıyorum: Ben kullanarak NSMutableURLRequest bunları eklemek için kullanılan. Başlamadığınız bir NSURLRequest nesnesini değiştirmeye çalıştığınızı düşünüyorum.

Aşağıdaki yöntemle başlık alanının isteğinizin bir mutableCopy oluşturmak ve sonra da ayarlayabilirsiniz: Eğer geri NSURLRequest değişken üzerine değişken istek copy edebilirsiniz Bundan sonra

-(void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field. 

.

DÜZENLEME:

/* Create request variable containing our immutable request 
* This could also be a paramter of your method */ 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.stackoverflow.com"]]; 

// Create a mutable copy of the immutable request and add more headers 
NSMutableURLRequest *mutableRequest = [request mutableCopy]; 
[mutableRequest addValue:@"Hless" forHTTPHeaderField:@"X-user-nick"]; 

// Now set our request variable with an (immutable) copy of the altered request 
request = [mutableRequest copy]; 

// Log the output to make sure our new headers are there  
NSLog(@"%@", request.allHTTPHeaderFields); 
+1

sayesinde, HATP Başlıklarını NSTLRequest'e ekleyemezsin, sadece onları alabilirsin, dürüst olmak gerekirse NSURLRequest kullanmak istedim çünkü delegeyi kullanarak bir dosya almak istedim "didRece iveData "ancak şimdi NSMutableURLRequest ile thread kullanıyorum. –

+0

Bunu yayınladığımdan beri bir süredir biliyorum, ancak bir miktar popüler talep nedeniyle cevabı doğruluğu için güncelledim ve bir örnek ekledim. – Hless

+0

hey @ Bu yöntemi denedim ama hala yetkisiz alıyorum. Sorumu burada görebiliyor musunuz: http://stackoverflow.com/questions/40342728/sending-httpheaderfield-for-nsurlrequest-in-afmultipartformdata –

5
NSString *urlString = @"http://10.28.79.63:3000/testing"; 

NSMutableURLRequest *imageRequest = [[NSMutableURLRequest alloc] init] ; 
[imageRequest setURL:[NSURL URLWithString:urlString]]; 
[imageRequest setHTTPMethod:@"POST"]; 

NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"]; 
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 

[imageRequest setValue:contentType forHTTPHeaderField: @"content-Type"]; 
NSMutableData *body = [NSMutableData dataWithCapacity:[imageData length] + 512]; 
[body appendData:[[NSString stringWithFormat:@"--%@\r\n",boundary]dataUsingEncoding:NSUTF8StringEncoding]]; 

//Here u adds the Headers which will be posted in body 

[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; content-type: application/octet-stream; name=\"userfile\"; filename=\"inLove.mp4\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 


[body appendData:[NSData dataWithData:imageData]]; 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

[imageRequest setHTTPBody:body]; 
NSURLConnection * theConnection = [[NSURLConnection alloc] initWithRequest:imageRequest 
               delegate:self]; 
7

altına eklendi örnek Zaten (bu cevaplara ve teşekkür) cevap, ama burada daha basit örnek: cevap için

NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url]]; 
[request setValue:@"es" forHTTPHeaderField:@"Accept-Language"]; 
+0

Bu gerçekten en doğru cevaptır (Y) – Adeel

İlgili konular