Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用spring framework twitter API发布推文时损坏的图像_Java_Spring_Twitter - Fatal编程技术网

Java 使用spring framework twitter API发布推文时损坏的图像

Java 使用spring framework twitter API发布推文时损坏的图像,java,spring,twitter,Java,Spring,Twitter,我正试图使用Spring框架的TwitterAPI从JavaTomcat服务器发布一条带有嵌入图像的推文。该图像是一个在线托管的JPG(通过Amazon Cloudfront CDN)。我尝试在下面的代码段中使用UpdateWebet函数发布: 导入org.springframework.social.twitter.api.TweetData; 导入org.springframework.social.twitter.api.TwitterProfile; 导入org.springframew

我正试图使用Spring框架的TwitterAPI从JavaTomcat服务器发布一条带有嵌入图像的推文。该图像是一个在线托管的JPG(通过Amazon Cloudfront CDN)。我尝试在下面的代码段中使用UpdateWebet函数发布:

导入org.springframework.social.twitter.api.TweetData;
导入org.springframework.social.twitter.api.TwitterProfile;
导入org.springframework.social.twitter.api.Tweet;
导入org.springframework.social.twitter.api.impl.twitter模板;
// ...
public Tweet UpdateWeet(String accessToken、String accessTokenSecret、String tweetMessage、String imageUrl){
TwitterTemplate twitter=新的TwitterTemplate(twitterConsumerKey、TwitterConsumerCret、accessToken、accessTokenSecret);
setRequestFactory(twitterHttpRequestFactory);
TweetData TweetData=新的TweetData(tweetMessage);
试一试{
URLROURCE IMAGEURLROURCE=新的URLROURCE(imageUrl);
info(“试图用url{}内容长度{}”、imageUrl、imageUrlResource.contentLength()推特图像);
tweetData=tweetData.withMedia(imageUrlResource);
}捕获(格式错误){
logger.error(“tweet图像的url格式错误:{}”,imageUrl);
}捕获(IOE异常){
logger.error(“tweet图像的IOException{}\n{}”,imageUrl,e);
}
返回twitter.timelineOperations().updateStatus(tweetData);
}
tweet发布到我的用户的时间线,并且确实包含了一个尺寸正确的JPG图像(640x640,与源图像一样)-但是,实际的图像数据被破坏了!下面是一个损坏图像的示例,该图像最终出现在我的twitter时间线上:

我的第一个想法是图像数据被截断了。但是,我已经通过上面代码示例中的logger.info行确认,指向图像的URLResource报告的内容长度与原始图像的文件大小匹配


我不确定为什么这段代码会将损坏的图像数据发送到twitter。我已经搜索了使用Spring框架中的TweetData.withMedia功能将图像发布到twitter的工作示例,但我没有找到一个。

您没有指定您使用的是哪个版本的
Spring社交twitter
,但希望您会发现这很有用。根据您对
TweetData
类的使用情况,您的代码表明您正在使用1.1.0.M4或更高版本

我最近发现我的应用程序也有同样的问题。它发生在我从
springsocialtwitter
1.0.3.RELEASE“升级”到1.1.0.M4之后的某个时候。在我恢复到1.0.3.RELEASE之后,问题得到了解决。恢复到1.1.0.M3也可以解决此问题

Spring Social Twitter的Jira数据库中记录了该漏洞:

如果你恢复到一个不太坏的版本,你将不得不停止使用
TweetData
。以下是方法:

TweetData tweetData = new TweetData(caption).withMedia(image);
timelineOperations.updateStatus(tweetData);
变成

timelineOperations.updateStatus(caption, image);

祝你好运

问题被标记为已修复,我仍在RC1版本上遇到损坏的映像。一切正常吗?不是很有希望“恢复到一个不太坏的版本”;-)你知道他们的javadocs是否有一个版本,里面有一些实际的注释和方法描述吗?