Re: NSURLRequest and HTTP PUT?
Re: NSURLRequest and HTTP PUT?
- Subject: Re: NSURLRequest and HTTP PUT?
- From: John Lombardo <email@hidden>
- Date: Thu, 27 May 2004 19:34:47 +0800
Well, this is just awesome. I only just realised today that I should be
using PUT rather than GET in my app. How does the Cocoa bug fix cycle
actually work? Like, beyond filing bugs, what happens? (Up to and
including being able to use the fixed classes)
On 25/05/2004, at 12:11 PM, Jonathan Younger wrote:
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.
_______________________________________________
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.