Add HTTP Header to NSURLRequest

前端 未结 3 906
星月不相逢
星月不相逢 2020-12-02 12:11

Is there any way to add HTTP header to NSURLRequest object? I used to add them in NSMutableURLRequest using:

[request addValue:@\"P         


        
相关标签:
3条回答
  • 2020-12-02 12:39

    I don't think you can modify the HTTP Headers of a NSURLRequest. I think you're trying to modify a NSURLRequest object that you didn't initialize?

    You could create a mutableCopy of your request and then set the header fields with the following method:

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

    After that you can copy the mutable request back onto your NSURLRequest variable.

    EDIT: Added example below

    /* 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);
    
    0 讨论(0)
  • 2020-12-02 12:57
    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];
    
    0 讨论(0)
  • 2020-12-02 13:00

    Already answered (and thanks to those answers), but here's a more simple example:

    NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url]];
    [request setValue:@"es" forHTTPHeaderField:@"Accept-Language"];
    
    0 讨论(0)
提交回复
热议问题