我开始使用Fabric SDK,当用户离线并且在用户看过列表之后没有网络连接时,我一直在尝试将推文缓存到Android设备鸣叫。
我使用client.getSearchService()。tweets(....)方法来检索我的推文,并且我将响应作为com.twitter.sdk.android.core.models.Tweet
对象的列表获得,就像在Retrofit中一样
我试图将这些推文写入我的内部存储文件,但由于推文模型不可序列化,因此我无法存储它。有没有办法可以从Fabric SDK获得JSON响应?我正在iOS Fabric SDK上寻找类似于client.URLRequestWithMethod(...)
的服务。
非常感谢任何帮助。提前谢谢。
答案 0 :(得分:1)
我最终解决了这个问题,使用自定义服务和客户端进行搜索以获取JSON响应,而不是使用改造的映射。
例如,对于搜索服务,
interface CustomSearchService {
@GET("/1.1/search/tweets.json")
void tweets(@Query("q") String var1, @EncodedQuery("geocode") Geocode var2, @Query("lang") String var3, @Query("locale") String var4, @Query("result_type") String var5, @Query("count") Integer var6, @Query("until") String var7, @Query("since_id") Long var8, @Query("max_id") Long var9, @Query("include_entities") Boolean var10, Callback<Response> var11);
}
static class SearchApiClient extends TwitterApiClient {
public SearchApiClient(Session session) {
super(session);
}
public CustomSearchService getCustomSearchService() {
return getService(CustomSearchService.class);
}
}
通过
获取数据apiClient.getCustomSearchService().tweets(searchParam.toString(), null, null, null, null, TWEET_COUNT, null,null, null, true,
new Callback<Response>() {
@Override
public void success(Result<Response> result) {
//DO SOMETHING WITH THE JSON RESPONSE HERE
// InputStream stream = result.data.getBody().in(); //<-- This contains the data
}
}
答案 1 :(得分:0)
Twitter支持自定义OkHttp客户端,请查看他们的示例应用程序:
我附上了相关代码段:
int printCompanyInfo() { // this will print out the format for as long as I need it.
char discount[30];
char tax[30];
if (discountTypeLookup == 0) {
strcpy_s(discount, 30, "Not Applicable");
}
else if (discountTypeLookup == 1) {
strcpy_s(discount, 30, "before Tax");
}
else if (discountTypeLookup == 2) {
strcpy_s(discount, 30, "After Tax");
}
else if (discountTypeLookup == 3) {
strcpy_s(discount, 30, "Before Tax > 14,500");
}
if (payTaxLookup == 0) {
strcpy_s(tax, 30, "No");
}
else if (payTaxLookup == 1) {
strcpy_s(tax, 30, "Yes");
}
printf_s("%s %s %f %s %s %s\n", companyId, companyNameLookup, discountRateLookup, discount, tax, pickUpBayLookup);
return(0);
}