Re: Sending a non http request
Re: Sending a non http request
- Subject: Re: Sending a non http request
- From: Mike Abdullah <email@hidden>
- Date: Thu, 17 Dec 2009 11:47:05 +0000
After a quick look through the RFC, it looks like NSURLConnection won't quite be able to meet your needs out of the box. As I understand it, what you need to happen is to take the ipp:// request and turn it into a modified HTTP request as per the spec.
I suggest you read up on NSURLProtocol and implement your own custom protocol for ipp:// URLs. It sounds like you should be able to set it up to construct an http:// URL and pass that along, but if not, the CFHTTP functions aren't too hard to get acquainted with.
Mike.
On 15 Dec 2009, at 22:22, Development wrote:
> I am trying to post data to NSString * url = [NSString stringWithFormat:@"ipp://%@:%i/%@",host,[service port],item];
> Which as you can see is an ipp address. However the code below fails as I get an error from the NSError that I am using an unsupported url. Obviously if I send it as http:// all I get is the cups page. So the question then is how to format this url or how to send the request.
>
>
> NSMutableData * sendData= [[NSMutableData alloc]init];
> NSMutableData * body= [[NSMutableData alloc]init];
> NSString * boundry = @"@@##$$rew**&&^%^";
>
> NSInputStream* stream = [[[NSInputStream alloc]initWithData:imageData] retain];
> [body appendData:[[NSString stringWithFormat:@"--%@\r\n",boundry]dataUsingEncoding:NSUTF8StringEncoding]];
> [body appendData:[@"Content-Type: image/png\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
> [body appendData:imageData];
> [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundry]dataUsingEncoding:NSUTF8StringEncoding]];
>
> //int totalSize =[body length];
>
> [sendData appendData:body];
> NSMutableURLRequest* post = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:path]];
>
> [post addValue: @"application/ipp; boundary=@@##$$rew**&&^%^" forHTTPHeaderField: @"Content-Type"];
> [post setHTTPBodyStream:stream];
> [post setHTTPMethod: @"POST"];
> [post setHTTPBody:sendData];
> NSURLResponse* response;
> NSError* error;
> NSLog(@"Sending request now %@",[NSURL URLWithString:path]);
> NSLog(@"Scheme: %@",[[NSURL URLWithString:path]scheme]);
> NSLog(@"Port %@",[[NSURL URLWithString:path]port]);
> NSData* result = [NSURLConnection sendSynchronousRequest:post returningResponse:&response error:&error];
> NSString * incoming = [[[NSString alloc] initWithData:result encoding:NSASCIIStringEncoding] autorelease];
>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden