• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSURLRequest and HTTP PUT?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSURLRequest and HTTP PUT?


  • Subject: Re: NSURLRequest and HTTP PUT?
  • From: Jonathan Younger <email@hidden>
  • Date: Mon, 24 May 2004 21:11:12 -0700

It's a known bug. The only option at this point is to use something other than NSMutableURLRequest/NSURLConnection to do the HTTP PUT.

-Jonathan

On May 24, 2004, at 8:24 PM, Jan van Doorn wrote:

Hello,

Sorry if this is easy to be found in docs or on the web, but I tried, and couldn't find anything remotely helpful. I am still pretty new to Cocoa, and even newer to this list, so again, please excuse me if I am asking the wrong question, or the wrong people.

I am trying to do a HTTP PUT from my Cocoa application. I used Neon (http://www.webdav.org/neon) before, that worked, but I had some stability problems, and want a bit more flexibility, so now, I am looking into NSURL* (Request, Response, Connection) to do the job.

My problem is that it seems to never actually send the body with the PUT request. Below is a little snippet of code. It sends the request, but, there is no Content-Length: header, and the body is 0 bytes. If I just change the "[request setHTTPMethod:@"PUT"];" to "[request setHTTPMethod:@"POST"];" it actually will include the body in the request, and gives me a Content-Length: header for free. But I want to PUT, not POST. I used ethereal to verify the contents of the request when it arrives at the server.

I am pretty sure the NSURLRequest should support the "PUT" method, it does support the more exotic (webdav) MKCOL method, I got that working in just a couple of minutes.... There's no body with that though.

----- code snippet -----
NSString *sourceFileName = "/Users/JvD/tmp/testfile.txt";
NSString *urlString=[[NSString alloc] initWithString:@"http://myserver.mydomain.com/testfile.txt";];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];
NSData *fileData = [[NSData alloc] initWithContentsOfFile:sourceFileName];
[request setHTTPMethod:@"PUT"];
[request setHTTPBody:[fileData retain]]; // I tried with and without retain message
NSData *body = [request HTTPBody];
NSLog(@"data: %@", [[NSString alloc]initWithData:body encoding:NSUTF8StringEncoding]); // this show the contents of the txt file
NSData *respData;
NSURLResponse *response;
NSError *error;
respData = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
----- /code snippet -----

Any and all help would be appreciated.

Cheers,
JvD
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.


  • Follow-Ups:
    • Re: NSURLRequest and HTTP PUT?
      • From: John Lombardo <email@hidden>
    • Re: NSURLRequest and HTTP PUT?
      • From: Jan van Doorn <email@hidden>
References: 
 >NSURLRequest and HTTP PUT? (From: Jan van Doorn <email@hidden>)

  • Prev by Date: Re: why are floats flakey?
  • Next by Date: Re: simple telnet-like networking in cocoa
  • Previous by thread: NSURLRequest and HTTP PUT?
  • Next by thread: Re: NSURLRequest and HTTP PUT?
  • Index(es):
    • Date
    • Thread