同时从多个线程访问一个 AndroidPublisher 对象是否安全?
在我的服务器端,我需要验证 Google play 应用内购买
fun verifyWithPlay(request0: PurchaseRequest): ProductPurchase? {
try {
//https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.products/get
val httpTransport: HttpTransport = GoogleNetHttpTransport.newTrustedTransport()
val jsonFactory: JsonFactory = GsonFactory()
val publisher: AndroidPublisher =
AndroidPublisher.Builder(httpTransport, jsonFactory, HttpCredentialsAdapter(credentials))
.setApplicationName(appName).build()
val purchases: AndroidPublisher.Purchases = publisher.purchases()
val request = purchases.products().get(
packageName, request0.productId,
request0.purchaseToken
)
val purchase: ProductPurchase = request.execute()
//debug("purchase:$purchase")
return purchase
} catch (e: Exception) {
e.printStackTrace()
}
return null
}
如果 AndroidPublisher 类是线程安全的,我可以重复使用它并避免每次都使用 build() 方法。
它的文档没有提到线程安全。 AndroidPublisher.html
注意:它是超类 com.google.api.client.googleapis.services.json。AbstractGoogleJsonClient 是线程安全的。