gpt4 book ai didi

iphone - tumblr iphone 集成

转载 作者:行者123 更新时间:2023-11-28 23:17:41 33 4
gpt4 key购买 nike

您好,我已经完成了 tumbler 中的状态更新,但是当我以数据形式发送照片时遇到问题,如下所示。

-(IBAction)sendPhoto
{
NSString *email = @"user_name@gmail.com";
NSString *password = @"password";
NSString *sendType = @"photo";

UIImage *imageMS = [UIImage imageNamed:@"Submit.png"];
NSData *photoData = [[NSData alloc] initWithData:UIImagePNGRepresentation(imageMS)];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc]
initWithURL:[NSURL URLWithString:@"http://www.tumblr.com/api/write"]];
[request setHTTPMethod:@"POST"];
NSString *request_body = [NSString
stringWithFormat:@"email=%@&password=%@&type=%@&data=%@",
[email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
[password stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
[sendType stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
photoData];
[request setHTTPBody:[request_body dataUsingEncoding:NSUTF8StringEncoding]];
[web loadRequest:request];
}

但是它没有得到更新。为什么?

最佳答案

我原来的回答被证明是不正确的,但是 OP 发布了一个代码链接,他说这个链接解决了他的问题。我已经复制了下面的代码,以便 future 的搜索者可以轻松找到它,因为我知道看到您描述的问题并找到解决方案的链接只是为了让该链接失效是多么令人沮丧。

代码基于http://forums.macrumors.com/showthread.php?t=427513 :

- (BOOL)sendPhotoToTumblr:(NSString *)photo usingEmail:(NSString *)tumblrEmail andPassword:(NSString *)tumblrPassword withCaption:(NSString *)caption;
{
//get image data from file
NSData *imageData = [NSData dataWithContentsOfFile:photo];
//stop on error
if (!imageData) return NO;

//Create dictionary of post arguments
NSArray *keys = [NSArray arrayWithObjects:@"email",@"password",@"type",@"caption",nil];
NSArray *objects = [NSArray arrayWithObjects:
tumblrEmail,
tumblrPassword,
@"photo", caption, nil];
NSDictionary *keysDict = [[NSDictionary alloc] initWithObjects:objects forKeys:keys];

//create tumblr photo post
NSURLRequest *tumblrPost = [self createTumblrRequest:keysDict withData:imageData];
[keysDict release];

//send request, return YES if successful
tumblrConnection = [[NSURLConnection alloc] initWithRequest:tumblrPost delegate:self];
if (!tumblrConnection) {
NSLog(@"Failed to submit request");
return NO;
} else {
NSLog(@"Request submitted");
receivedData = [[NSMutableData data] retain];
[tumblrConnection release];
return YES;
}
}


-(NSURLRequest *)createTumblrRequest:(NSDictionary *)postKeys withData:(NSData *)data
{
//create the URL POST Request to tumblr
NSURL *tumblrURL = [NSURL URLWithString:@"http://www.tumblr.com/api/write"];
NSMutableURLRequest *tumblrPost = [NSMutableURLRequest requestWithURL:tumblrURL];
[tumblrPost setHTTPMethod:@"POST"];

//Add the header info
NSString *stringBoundary = [NSString stringWithString:@"0xKhTmLbOuNdArY"];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",stringBoundary];
[tumblrPost addValue:contentType forHTTPHeaderField: @"Content-Type"];

//create the body
NSMutableData *postBody = [NSMutableData data];
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n",stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];

//add key values from the NSDictionary object
NSEnumerator *keys = [postKeys keyEnumerator];
int i;
for (i = 0; i < [postKeys count]; i++) {
NSString *tempKey = [keys nextObject];
[postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",tempKey] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"%@",[postKeys objectForKey:tempKey]] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
}

//add data field and file data
[postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"data\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[NSData dataWithData:data]];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];

//add the body to the post
[tumblrPost setHTTPBody:postBody];

return tumblrPost;
}

我修改了上面的代码以消除一些内存问题并添加一些参数以使其成为更通用/更灵活的解决方案。但是,如果有人想要发布在该站点上的原始代码,只需查看此答案的编辑修订即可。

关于iphone - tumblr iphone 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5313450/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com