NSURLSession: OS の NSURLSession Daemon とのコネクションを管理するインスタンス。大体アプリにつき一つ。Singleton で OK. Delegate はこいつに紐づく。NSURLSessionTask: 「リクエスト一つ」に対応。ただし OS 直属の NSURLSession Daemon に管理が委ねられる。
NSURLSessionを初期化
| <a href="intent://hoge/#Intent;scheme=huga;package=com.kaiinui.Training;end">Limk</a> |
BlobStoreService#createUploadUrl(String) でアップロード用の URL が作られるhttps://{id}.appspot.com/_ah/upload/XXXXXXX みたいなmultipart/form-data でバイナリを送る。キーは自由だしいくつも送ってもいい。createUploadUrl(String) に渡した URL にフォワードする(インスタンスに負荷無い)getUploads() で Map が取得出来る。Map のキーはマルチパートのキーであり、値は BlobKey である
400 Bad Request となる。404 Session Not Found となる)| apply plugin: 'java' | |
| apply plugin: 'idea' | |
| apply plugin: 'war' | |
| apply plugin: 'appengine' | |
| sourceCompatibility = 1.7 | |
| version = '1.0' | |
| def slim3Version = "1.0.+" | |
| def appengineVersion = "1.9.18" |
| public class BundleUtils { | |
| public static String toString(Bundle bundle) { | |
| final StringBuilder sb = new StringBuilder("Bundle: \n"); | |
| final Set<String> keys = bundle.keySet(); | |
| final Iterator<String> it = keys.iterator(); | |
| while (it.hasNext()) { | |
| final String key = it.next(); | |
| final Object obj = bundle.get(key); | |
| // #{KEY} : #{VALUE} (#{TYPE}) | |
| sb.append(key).append(" : ").append(obj).append(" (" + obj.getClass().getSimpleName() + ")").append("\n"); |
Write パーミッションをつけ、logging を set on する。以上。
Writer にするのは [email protected]
gsutil acl ch -g [email protected]:W gs://my_logs| package co.kotori.grumbler.utils; | |
| import android.app.Activity; | |
| import android.content.Context; | |
| import android.content.SharedPreferences; | |
| import android.content.pm.PackageInfo; | |
| import android.content.pm.PackageManager; | |
| import android.os.AsyncTask; | |
| import android.util.Log; |