我正在尝试将消息与图表文件一起发送,但无济于事。这段代码可以很好地发送常规消息。我正在使用AFNetworking来做这件事。我使用的stocktwits端点:
https://api.stocktwits.com/api/2/messages/create.json
NSURL *url = [NSURL fileURLWithPath:chartFilePath];
NSDictionary *params = @{@"in_reply_to_message_id": inReplyToMsgId, @"chart":url, @"body":msg, @"access_token":oauthtoken};
NSMutableURLRequest *request = [manager.requestSerializer requestWithMethod:@"POST" URLString:reqURL parameters:params];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setResponseSerializer:[AFHTTPResponseSerializer alloc]];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSString *json_string = [[NSString alloc] initWithData:responseObject
encoding:NSUTF8StringEncoding];
NSLog(@"stocktwits: %@", json_string);
}failure:^(AFHTTPRequestOperation *operation, NSError *error){
NSLog(@"Failure: %@", error);
failure(error);
}];
[manager.operationQueue addOperation:operation];我得到的错误消息是:
stocktwits: {"response":{"status":422},"errors":[{"message":"We couldn't recognize the image format. Format must be one of: image/jpeg image/pjpeg image/png image/x-png image/gif"}]}我一直在尝试AFNetworking提供的其他解决方案,比如AFMultipartFormData,但也没有用。
有人知道我错过了什么吗?
谢谢!
发布于 2021-03-31 00:51:55
我可以上传一个图表/图像,使用以下代码的API的限制:
- (void) commonPostWithPath:(NSString*)path params:(NSDictionary*)parameters image:(UIImage*_Nullable)image completion:(MOTwitterCompletionBlock _Nullable ) completion{
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:StockTwits_BaseURL]];
[manager POST:path parameters:parameters headers:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
if (image) {
[formData appendPartWithFileData:UIImagePNGRepresentation(image) name:@"chart" fileName:@"Stocks Live" mimeType:@"image/png"];
}
} progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
if (completion) completion(responseObject, nil);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
completion(nil, error);
}];
}https://stackoverflow.com/questions/31520811
复制相似问题