yes pwa name icon home content capable apps apple app iphone twitter httprequest yfrog

iphone - pwa - Publicar en yFrog objc



web app ipad (2)

Estoy tratando de publicar imágenes y videos en Twitter con yFrog a través de mi aplicación, pero parece que no ocurre nada cuando hago la solicitud ... ¿alguien puede ver lo que estoy haciendo mal o apuntarme en la dirección correcta? gracias

-(IBAction)yFrogToTwitter { // create the URL //used to render bigger images videos //NSURL *postURL = [NSURL URLWithString:@"http://render.imageshack.us/renderapi/start"]; //below is used to directly upload to twitter NSURL *postURL = [NSURL URLWithString:@"http://yfrog.com/api/uploadAndPost"]; // create the connection NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:postURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0]; // change type to POST (default is GET) [postRequest setHTTPMethod:@"POST"]; // create data NSMutableData *postBody = [NSMutableData data]; //NSString *media = PickedImage.image; NSString *username = twitterEngine.username; NSString *password = twitterEngine.password; NSString *message = TweetBody.text; NSString *source = @"ThemeCatcher"; NSString *api_key= kYFrogKey; // just some random text that will never occur in the body NSString *stringBoundary = @"0xKhTmLbOuNdArY---This_Is_ThE_BoUnDaRyy---pqo"; // header value NSString *headerBoundary = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",stringBoundary]; // set header [postRequest addValue:headerBoundary forHTTPHeaderField:@"Content-Type"]; // username part [postBody appendData:[[NSString stringWithFormat:@"--%@/r/n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=/"username/"/r/n/r/n"] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[username dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[@"/r/n" dataUsingEncoding:NSUTF8StringEncoding]]; // password part [postBody appendData:[[NSString stringWithFormat:@"--%@/r/n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=/"password/"/r/n/r/n"] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[password dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[@"/r/n" dataUsingEncoding:NSUTF8StringEncoding]]; // api_key [postBody appendData:[[NSString stringWithFormat:@"--%@/r/n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=/"key/"/r/n/r/n"] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[api_key dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[@"/r/n" dataUsingEncoding:NSUTF8StringEncoding]]; // message part [postBody appendData:[[NSString stringWithFormat:@"--%@/r/n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=/"message/"/r/n/r/n"] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[message dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[@"/r/n" dataUsingEncoding:NSUTF8StringEncoding]]; // source part [postBody appendData:[[NSString stringWithFormat:@"--%@/r/n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=/"source/"/r/n/r/n"] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[source dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[@"/r/n" dataUsingEncoding:NSUTF8StringEncoding]]; // media part [postBody appendData:[[NSString stringWithFormat:@"--%@/r/n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[@"Content-Disposition: form-data; name=/"media/"; filename=/"fish.jpg/"/r/n" dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[@"Content-Type: image/jpeg/r/n" dataUsingEncoding:NSUTF8StringEncoding]]; [postBody appendData:[@"Content-Transfer-Encoding: binary/r/n/r/n" dataUsingEncoding:NSUTF8StringEncoding]]; NSData *imageData = UIImagePNGRepresentation(PickedImage.image); // add Image to body [postBody appendData:imageData]; [postBody appendData:[@"/r/n" dataUsingEncoding:NSUTF8StringEncoding]]; // final boundary [postBody appendData:[[NSString stringWithFormat:@"--%@/r/n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; // add body to post [postRequest setHTTPBody:postBody]; // pointers to some necessary objects //NSURLResponse* response; //NSError* error; [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:postRequest delegate:self]; if( theConnection ) { webData = [[NSMutableData data] retain]; } else { NSLog(@"theConnection is NULL"); } }


Mi XMLParser a continuación

// // yFrogParser.h // PreviewMaker // // Created by Anthony Cornell on 4/12/12. // Copyright (c) 2012 iDevice Designs. All rights reserved. // #import <Foundation/Foundation.h> #import "yFrogObject.h" @interface yFrogParser : NSObject<NSXMLParserDelegate>{ NSMutableData *recivedData; NSMutableArray *imageInfo; NSMutableString *currentNodeContent; NSXMLParser *parser; yFrogObject *imageObjects; NSMutableArray *imageArray; } @property (readonly, retain) NSMutableArray *imageInfo; @property (nonatomic, retain) NSMutableArray *imageArray; @property (nonatomic, retain) NSMutableData *recivedData; -(id) loadXMLByData:(NSMutableData *)data; @end // // yFrogParser.m // PreviewMaker // // Created by Anthony Cornell on 4/12/12. // Copyright (c) 2012 iDevice Designs. All rights reserved. // #import "yFrogParser.h" @implementation yFrogParser @synthesize imageInfo,imageArray,recivedData; -(id) loadXMLByData:(NSMutableData *)data{ imageArray = [[NSMutableArray alloc] init]; recivedData = [[NSMutableData alloc]initWithData:data]; parser = [[NSXMLParser alloc] initWithData:recivedData]; parser.delegate = self; [parser parse]; return self; } - (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { if ([elementname isEqualToString:@"links"]) { imageObjects = [yFrogObject alloc]; } } - (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if ([elementName isEqualToString:@"image_link"]) { imageObjects.responceURL = currentNodeContent; } if ([elementName isEqualToString:@"image_bb"]) { imageObjects.forumUrl = currentNodeContent; // NSLog(@"image forum url %@",currentNodeContent); } if ([elementName isEqualToString:@"links"]) { [imageArray addObject:imageObjects]; [imageObjects release]; imageObjects = nil; [currentNodeContent release]; currentNodeContent = nil; } } - (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; } @end

En tu Delegado haz algo de esta naturaleza

-(void) connectionDidFinishLoading:(NSURLConnection *)connection { [connection release]; parser = [[yFrogParser alloc]init]; [parser loadXMLByData:webData]; yFrogObject *object = [[parser imageArray]objectAtIndex:0]; NSString* responseString = [[NSString alloc] initWithData:webData encoding:NSUTF8StringEncoding]; //NSLog(@"Parser result: %@", [object responceURL]); //NSLog(@"yFrog responce results: %@", responseString); [responseString release]; }

En el ánimo de compartir! Espero que esto ayude


No está implementando los métodos de devolución de llamada de delegado (al menos en el código anterior). Veo que se asigna al delegado, pero no veo las devoluciones de llamada. Asegúrate también de verificar la devolución de llamada por error

Aquí están los métodos de devolución de delegado que debe implementar:

http://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSURLConnectionDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/NSURLConnectionDelegate

didFailWithError es el más grande si tienes problemas. asegúrese de leer todos los datos de NSError y, como mínimo, registrarlo.

Por ejemplo:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [responseData appendData:data]; } - (void) connectionDidFinishLoading:(NSURLConnection *)connection { [connection release]; NSString* responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; NSLog(@"result: %@", responseString); [responseString release]; } - (void) connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { NSLog(@"error - read error object for details"); }