HTTP curl in Android, wie übersetzen?

J

jdajul

Ambitioniertes Mitglied
1
Hallo ich habe folgenden CURL Befehl:
$ curl -XPOST 'https://api.wit.ai/entities/favorite_city/values?v=20141022' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{"value":"Paris",
"expressions":["Paris","City of Light","Capital of France"],
"metadata":"CITY_1234"}'

Wie kann ich den denn übersetzen?
Ich habe es wie folgt versucht:
Code:
 try {
                HttpURLConnection httpcon = (HttpURLConnection) ((new URL("https://api.wit.ai/entities/time/values?v=20141022").openConnection()));
                httpcon.setRequestMethod("POST");
                httpcon.setDoOutput(true);
                httpcon.setRequestProperty("Content-Type", "application/json");
                httpcon.setRequestProperty("Authorization", "Bearer $ MYTOKEN");
                httpcon.connect();
                final String toWriteOut = "{'value': test}";
                final OutputStreamWriter osw = new OutputStreamWriter(httpcon.getOutputStream());
                osw.write(toWriteOut);
                osw.close();
            }
            catch (Exception e){
                System.out.println("url post failed");
            }

Allerdings funktioniert das leider nicht - hat jemand ne Ahnung wieso?
 
Zuletzt bearbeitet:
Was bedeutet denn funktioniert nicht?

Ich nehme an da fliegt eine Exception. Die könntest du mal ausgeben. Vielleicht können wir dann besser sehen was falsch läuft.
Ansonsten: Welcher HTTP-Status-Code kommt zurück?

Falls du den Stacktrace deiner Exception sehen willst geht das einfach in dem du in deinem catch-Block folgendes machst:

Code:
catch (Exception e){
    e.printStackTrace();
    System.out.println("url post failed");
}
 
davejs schrieb:
was bedeutet denn funktioniert nicht?
Falls du den stacktrace deiner exception sehen willst geht das einfach in dem du in deinem catch-block folgendes machst:

Code:
catch (exception e){
    e.printstacktrace();
    system.out.println("url post failed");
}

! ! ! Tu dies niemals ! ! !
 
Hallo, weshalb denn nicht?
Gruß
Julian
 
Weil man
*Fehler ernst und
*dem User entsprechenden Feedback geben oder vielleicht
*passende Gegenmassnahmen ergreifen sollte.
*Und auf keinen Fall fängt man pauschal einfach alles ab, bloß weil man zu faul ist, sich Gedanken zu machen, welche Execeptions da so kommen könnten.

Add: und nein, ist LogCat dumpen ist kein User Feedback :D
 
Zuletzt bearbeitet:
und was wäre deine Lösung dazu?
hier mal die logcat:
Code:
03-16 13:56:05.349    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm Zygote::ForkAndSpecialize : 0
03-16 13:56:05.351    3109-3109/eval.wit.ai.wit_eval2 E/cutils to chown(/mnt/shell/emulated/0, 0, 0)
03-16 13:56:05.352    3109-3109/eval.wit.ai.wit_eval2 E/cutils to chown(/mnt/shell/emulated/obb, 0, 0)
03-16 13:56:05.352    3109-3109/eval.wit.ai.wit_eval2 E/cutils to chown(/storage/emulated/0/Android, 0, 0)
03-16 13:56:05.352    3109-3109/eval.wit.ai.wit_eval2 E/cutils to chown(/storage/emulated/0/Android/obb, 0, 0)
03-16 13:56:05.353    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm zygote get new systemTid : 3109
03-16 13:56:05.369    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm Late-enabling CheckJNI
03-16 13:56:05.370    3109-3113/eval.wit.ai.wit_eval2 D/dalvikvm threadid=2: interp stack at 0x41f8c000
03-16 13:56:05.370    3109-3114/eval.wit.ai.wit_eval2 D/dalvikvm threadid=3: interp stack at 0x41f94000
03-16 13:56:05.371    3109-3109/eval.wit.ai.wit_eval2 D/jdwp prepping for JDWP over ADB
03-16 13:56:05.371    3109-3109/eval.wit.ai.wit_eval2 D/jdwp ADB transport startup
03-16 13:56:05.371    3109-3114/eval.wit.ai.wit_eval2 D/dalvikvm Elevating priority from 0 to -8
03-16 13:56:05.371    3109-3115/eval.wit.ai.wit_eval2 D/dalvikvm threadid=4: interp stack at 0x41f9c000
03-16 13:56:05.371    3109-3115/eval.wit.ai.wit_eval2 D/jdwp JDWP: thread running
03-16 13:56:05.371    3109-3115/eval.wit.ai.wit_eval2 D/jdwp acceptConnection
03-16 13:56:05.372    3109-3115/eval.wit.ai.wit_eval2 D/jdwp trying to receive file descriptor from ADB
03-16 13:56:05.372    3109-3116/eval.wit.ai.wit_eval2 D/dalvikvm threadid=5: interp stack at 0x51dc1000
03-16 13:56:05.372    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm zygote get thread init done
03-16 13:56:05.372    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm create interp thread : stack size=32KB
03-16 13:56:05.372    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm create new thread
03-16 13:56:05.373    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm new thread created
03-16 13:56:05.373    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm update thread list
03-16 13:56:05.373    3109-3117/eval.wit.ai.wit_eval2 D/dalvikvm threadid=6: interp stack at 0x51dc9000
03-16 13:56:05.373    3109-3117/eval.wit.ai.wit_eval2 D/dalvikvm threadid=6: created from interp
03-16 13:56:05.373    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm start new thread
03-16 13:56:05.373    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm create interp thread : stack size=32KB
03-16 13:56:05.373    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm create new thread
03-16 13:56:05.373    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm new thread created
03-16 13:56:05.373    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm update thread list
03-16 13:56:05.373    3109-3117/eval.wit.ai.wit_eval2 D/dalvikvm threadid=6: notify debugger
03-16 13:56:05.374    3109-3117/eval.wit.ai.wit_eval2 D/dalvikvm threadid=6 (ReferenceQueueDaemon): calling run()
03-16 13:56:05.374    3109-3118/eval.wit.ai.wit_eval2 D/dalvikvm threadid=7: interp stack at 0x51ed1000
03-16 13:56:05.374    3109-3118/eval.wit.ai.wit_eval2 D/dalvikvm threadid=7: created from interp
03-16 13:56:05.374    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm start new thread
03-16 13:56:05.374    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm create interp thread : stack size=32KB
03-16 13:56:05.374    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm create new thread
03-16 13:56:05.374    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm new thread created
03-16 13:56:05.374    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm update thread list
03-16 13:56:05.374    3109-3118/eval.wit.ai.wit_eval2 D/dalvikvm threadid=7: notify debugger
03-16 13:56:05.374    3109-3118/eval.wit.ai.wit_eval2 D/dalvikvm threadid=7 (FinalizerDaemon): calling run()
03-16 13:56:05.374    3109-3119/eval.wit.ai.wit_eval2 D/dalvikvm threadid=8: interp stack at 0x51fd9000
03-16 13:56:05.375    3109-3119/eval.wit.ai.wit_eval2 D/dalvikvm threadid=8: created from interp
03-16 13:56:05.375    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm start new thread
03-16 13:56:05.378    3109-3119/eval.wit.ai.wit_eval2 D/dalvikvm threadid=8: notify debugger
03-16 13:56:05.379    3109-3115/eval.wit.ai.wit_eval2 D/jdwp received file descriptor 33 from ADB
03-16 13:56:05.379    3109-3119/eval.wit.ai.wit_eval2 D/dalvikvm threadid=8 (FinalizerWatchdogDaemon): calling run()
03-16 13:56:05.396    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:05.396    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:05.396    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x1, cmdSet=0xC7, len=0x13, id=0x4000013E, flags=0x0, dataLen=0x8
03-16 13:56:05.400    3109-3120/eval.wit.ai.wit_eval2 D/dalvikvm threadid=9: interp stack at 0x523df000
03-16 13:56:05.402    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:05.402    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x1, cmdSet=0xC7, len=0x17, id=0x4000013F, flags=0x0, dataLen=0xC
03-16 13:56:05.403    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:05.403    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x1, cmdSet=0xC7, len=0x13, id=0x40000140, flags=0x0, dataLen=0x8
03-16 13:56:05.404    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:05.405    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x1, cmdSet=0xC7, len=0x13, id=0x40000141, flags=0x0, dataLen=0x8
03-16 13:56:05.406    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendBufferedRequest : len=0x3D
03-16 13:56:05.414    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:05.414    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x1, cmdSet=0xC7, len=0x14, id=0x40000142, flags=0x0, dataLen=0x9
03-16 13:56:05.417    3109-3121/eval.wit.ai.wit_eval2 D/dalvikvm threadid=10: interp stack at 0x524e7000
03-16 13:56:05.429    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendBufferedRequest : len=0x45
03-16 13:56:05.439    3109-3109/eval.wit.ai.wit_eval2 W/ActivityThread Application eval.wit.ai.wit_eval2 is waiting for the debugger on port 8100...
03-16 13:56:05.447    3109-3109/eval.wit.ai.wit_eval2 I/System.out Sending WAIT chunk
03-16 13:56:05.448    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendBufferedRequest : len=0x14
03-16 13:56:05.493    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:05.493    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x7, cmdSet=0x1, len=0xB, id=0x42F, flags=0x0, dataLen=0x0
03-16 13:56:05.493    3109-3115/eval.wit.ai.wit_eval2 I/dalvikvm Debugger is active
03-16 13:56:05.502    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:05.502    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x1, cmdSet=0xF, len=0x11, id=0x431, flags=0x0, dataLen=0x6
03-16 13:56:05.505    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:05.506    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x1, cmdSet=0xF, len=0x11, id=0x433, flags=0x0, dataLen=0x6
03-16 13:56:05.649    3109-3109/eval.wit.ai.wit_eval2 I/System.out Debugger has connected
03-16 13:56:05.649    3109-3109/eval.wit.ai.wit_eval2 D/jdwp +++ debugger interval=144
03-16 13:56:05.650    3109-3109/eval.wit.ai.wit_eval2 I/System.out waiting for debugger to settle...
03-16 13:56:05.850    3109-3109/eval.wit.ai.wit_eval2 D/jdwp +++ debugger interval=344
03-16 13:56:05.850    3109-3109/eval.wit.ai.wit_eval2 I/System.out waiting for debugger to settle...
03-16 13:56:05.891    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:05.891    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x1, cmdSet=0x1, len=0xB, id=0x435, flags=0x0, dataLen=0x0
03-16 13:56:05.892    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:05.892    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x11, cmdSet=0x1, len=0xB, id=0x437, flags=0x0, dataLen=0x0
03-16 13:56:05.894    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:05.894    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0xC, cmdSet=0x1, len=0xB, id=0x439, flags=0x0, dataLen=0x0
03-16 13:56:05.895    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:05.895    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x14, cmdSet=0x1, len=0xB, id=0x43B, flags=0x0, dataLen=0x0
03-16 13:56:06.050    3109-3109/eval.wit.ai.wit_eval2 D/jdwp +++ debugger interval=149
03-16 13:56:06.050    3109-3109/eval.wit.ai.wit_eval2 I/System.out waiting for debugger to settle...
03-16 13:56:06.155    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:06.155    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x5, cmdSet=0x1, len=0xB, id=0x43D, flags=0x0, dataLen=0x0
03-16 13:56:06.164    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:06.164    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x1, cmdSet=0xF, len=0x11, id=0x43F, flags=0x0, dataLen=0x6
03-16 13:56:06.166    3109-3115/eval.wit.ai.wit_eval2 D/jdwp processIncoming
03-16 13:56:06.166    3109-3115/eval.wit.ai.wit_eval2 D/jdwp handlePacket : cmd=0x1, cmdSet=0xF, len=0x11, id=0x441, flags=0x0, dataLen=0x6
03-16 13:56:06.251    3109-3109/eval.wit.ai.wit_eval2 D/jdwp +++ debugger interval=84
03-16 13:56:06.251    3109-3109/eval.wit.ai.wit_eval2 I/System.out waiting for debugger to settle...
03-16 13:56:06.451    3109-3109/eval.wit.ai.wit_eval2 D/jdwp +++ debugger interval=284
03-16 13:56:06.451    3109-3109/eval.wit.ai.wit_eval2 I/System.out waiting for debugger to settle...
03-16 13:56:06.651    3109-3109/eval.wit.ai.wit_eval2 D/jdwp +++ debugger interval=485
03-16 13:56:06.651    3109-3109/eval.wit.ai.wit_eval2 I/System.out waiting for debugger to settle...
03-16 13:56:06.851    3109-3109/eval.wit.ai.wit_eval2 D/jdwp +++ debugger interval=685
03-16 13:56:06.851    3109-3109/eval.wit.ai.wit_eval2 I/System.out waiting for debugger to settle...
03-16 13:56:07.052    3109-3109/eval.wit.ai.wit_eval2 D/jdwp +++ debugger interval=885
03-16 13:56:07.052    3109-3109/eval.wit.ai.wit_eval2 I/System.out waiting for debugger to settle...
03-16 13:56:07.252    3109-3109/eval.wit.ai.wit_eval2 D/jdwp +++ debugger interval=1085
03-16 13:56:07.252    3109-3109/eval.wit.ai.wit_eval2 I/System.out waiting for debugger to settle...
03-16 13:56:07.452    3109-3109/eval.wit.ai.wit_eval2 D/jdwp +++ debugger interval=1286
03-16 13:56:07.452    3109-3109/eval.wit.ai.wit_eval2 I/System.out waiting for debugger to settle...
03-16 13:56:07.653    3109-3109/eval.wit.ai.wit_eval2 D/jdwp +++ debugger interval=1486
03-16 13:56:07.653    3109-3109/eval.wit.ai.wit_eval2 I/System.out debugger has settled (1486)
03-16 13:56:07.664    3109-3109/eval.wit.ai.wit_eval2 D/dalvikvm open_cached_dex_file : /data/app/eval.wit.ai.wit_eval2-2.apk /data/dalvik-cache/data@app@eval.wit.ai.wit_eval2-2.apk@classes.dex
03-16 13:56:07.670    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x57
03-16 13:56:07.670    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x59
03-16 13:56:07.671    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x69
03-16 13:56:07.671    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x6D
03-16 13:56:07.672    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x58
03-16 13:56:07.673    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x47
03-16 13:56:07.673    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x50
03-16 13:56:07.675    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x59
03-16 13:56:07.678    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x56
03-16 13:56:07.678    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5A
03-16 13:56:07.679    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5C
03-16 13:56:07.679    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x58
03-16 13:56:07.680    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x59
03-16 13:56:07.684    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x60
03-16 13:56:07.685    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x63
03-16 13:56:07.685    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x62
03-16 13:56:07.688    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x58
03-16 13:56:07.688    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x4F
03-16 13:56:07.689    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5C
03-16 13:56:07.689    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x60
03-16 13:56:07.689    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5E
03-16 13:56:07.691    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x51
03-16 13:56:07.692    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x79
03-16 13:56:07.704    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.707    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.723    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.736    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.770    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.773    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.780    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.792    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x63
03-16 13:56:07.794    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x4F
03-16 13:56:07.795    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x56
03-16 13:56:07.796    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x58
03-16 13:56:07.797    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x64
03-16 13:56:07.798    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x50
03-16 13:56:07.807    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x43
03-16 13:56:07.809    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.811    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5D
03-16 13:56:07.825    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.832    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.834    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.836    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.839    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.841    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.851    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.855    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.863    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.866    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.868    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.871    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.875    3109-3109/eval.wit.ai.wit_eval2 D/AbsListView checkAbsListViewlLogProperty get invalid command
03-16 13:56:07.877    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:07.886    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x4E
03-16 13:56:07.891    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x4A
03-16 13:56:07.891    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x3E
03-16 13:56:07.892    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x52
03-16 13:56:07.893    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x4F
03-16 13:56:07.894    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5E
03-16 13:56:07.894    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x52
03-16 13:56:07.895    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x4D
03-16 13:56:07.896    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x56
03-16 13:56:07.902    3109-3109/eval.wit.ai.wit_eval2 V/Provider/Settings from db cache, name = tts_default_synth , value = null
03-16 13:56:07.905    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5A
03-16 13:56:07.907    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x62
03-16 13:56:07.908    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5A
03-16 13:56:07.908    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x58
03-16 13:56:07.908    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5D
03-16 13:56:07.908    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5C
03-16 13:56:07.917    3109-3109/eval.wit.ai.wit_eval2 I/TextToSpeech Sucessfully bound to com.google.android.tts
03-16 13:56:07.922    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x42
03-16 13:56:07.927    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x4A
03-16 13:56:07.970    3109-3109/eval.wit.ai.wit_eval2 I/System.out isopen? true
03-16 13:56:07.999    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x54
03-16 13:56:08.005    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x58
03-16 13:56:08.039    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x56
03-16 13:56:08.039    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x51
03-16 13:56:08.040    3109-3109/eval.wit.ai.wit_eval2 W/TextToSpeech stop failed: not bound to TTS engine
03-16 13:56:08.040    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x51
03-16 13:56:08.042    3109-3109/eval.wit.ai.wit_eval2 W/TextToSpeech shutdown failed: not bound to TTS engine
03-16 13:56:08.046    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x54
03-16 13:56:08.051    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x56
03-16 13:56:08.052    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5B
03-16 13:56:08.053    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5D
03-16 13:56:08.058    3109-3109/eval.wit.ai.wit_eval2 I/TextToSpeech Connected to ComponentInfo{com.google.android.tts/com.google.android.tts.service.GoogleTTSService}
03-16 13:56:08.059    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x57
03-16 13:56:08.060    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5C
03-16 13:56:08.060    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x62
03-16 13:56:08.061    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x51
03-16 13:56:10.112    3109-3109/eval.wit.ai.wit_eval2 I/Choreographer Skipped 123 frames!  The application may be doing too much work on its main thread.
03-16 13:56:10.162    3109-3109/eval.wit.ai.wit_eval2 D/libEGL loaded /vendor/lib/egl/libEGL_mtk.so
03-16 13:56:10.166    3109-3109/eval.wit.ai.wit_eval2 D/libEGL loaded /vendor/lib/egl/libGLESv1_CM_mtk.so
03-16 13:56:10.169    3109-3109/eval.wit.ai.wit_eval2 D/libEGL loaded /vendor/lib/egl/libGLESv2_mtk.so
03-16 13:56:10.222    3109-3109/eval.wit.ai.wit_eval2 D/OpenGLRenderer Enabling debug mode 0
03-16 13:56:10.237    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:10.244    3109-3109/eval.wit.ai.wit_eval2 D/skia Flag is not 10
03-16 13:56:10.247    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x68
03-16 13:56:10.248    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x61
03-16 13:56:10.248    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x65
03-16 13:56:10.248    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x5C
03-16 13:56:10.248    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x64
03-16 13:56:10.249    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x64
03-16 13:56:10.250    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x50
03-16 13:56:10.251    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x57
03-16 13:56:10.251    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x56
03-16 13:56:10.254    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x6E
03-16 13:56:10.257    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x60
03-16 13:56:10.258    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x68
03-16 13:56:10.258    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x67
03-16 13:56:10.260    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x56
03-16 13:56:10.261    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x66
03-16 13:56:10.261    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x6F
03-16 13:56:10.262    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x69
03-16 13:56:10.263    3109-3109/eval.wit.ai.wit_eval2 D/jdwp sendRequest : Len=0x62
03-16 13:56:10.276    3109-3109/eval.wit.ai.wit_eval2 V/InputMethodManager focusOut: android.widget.ImageButton{422ce650 VFED..C. ......I. 0,0-0,0 #7f070047 app:id/btnSpeak} mServedView=null winFocus=true
03-16 13:56:10.280    3109-3109/eval.wit.ai.wit_eval2 V/InputMethodManager onWindowFocus: null softInputMode=18 first=true flags=#1810100
03-16 13:56:10.283    3109-3109/eval.wit.ai.wit_eval2 V/InputMethodManager START INPUT: com.android.internal.policy.impl.PhoneWindow$DecorView{422a8570 V.E..... R.....I. 0,0-0,0} ic=null tba=android.view.inputmethod.EditorInfo@4234cb78 controlFlags=#104
03-16 13:56:10.288    3109-3109/eval.wit.ai.wit_eval2 V/InputMethodManager Starting input: Bind result=InputBindResult{null com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME #11}
03-16 13:56:10.295    3109-3109/eval.wit.ai.wit_eval2 W/IInputConnectionWrapper showStatusIcon on inactive InputConnection
 
Zuletzt bearbeitet:
DagobertDokate schrieb:
! ! ! Tu dies niemals ! ! !

Ich finde es durchaus legitim, um das zu testen mal den Stacktrace ins Logcat zu schreiben. Klar sollte das im Produktivcode nicht mehr drin stehen, aber um jetzt mal auf den Fehler zu kommen ist es gut.

@jdajul Dein catch-Block springt nicht an, zumindest sieht man im Logcat dazu nichts. Ich würde mal auf den Statuscode prüfen, der in der Response zum Server zurückkommt.
 
Hi, ich glaube ich habe den Falschen Teil der Logcat gepostet... hier nochmal der Richtige:
Code:
03-18 10:28:15.177    6093-6093/jritter.lsv.testing_wit_ai W/System.err SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
03-18 10:28:15.177    6093-6093/jritter.lsv.testing_wit_ai W/System.err SLF4J: Defaulting to no-operation (NOP) logger implementation
03-18 10:28:15.177    6093-6093/jritter.lsv.testing_wit_ai W/System.err SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
03-18 10:28:15.203    6093-6093/jritter.lsv.testing_wit_ai I/art Rejecting re-init on previously-failed class java.lang.Class<net.minidev.json.JSONUtil$JsonSmartFieldFilter>
03-18 10:28:15.204    6093-6093/jritter.lsv.testing_wit_ai I/art Rejecting re-init on previously-failed class java.lang.Class<net.minidev.json.JSONUtil$JsonSmartFieldFilter>
03-18 10:28:15.204    6093-6093/jritter.lsv.testing_wit_ai I/art Rejecting re-init on previously-failed class java.lang.Class<net.minidev.json.JSONUtil$JsonSmartFieldFilter>
03-18 10:28:15.926    6093-6093/jritter.lsv.testing_wit_ai W/System.err android.os.NetworkOnMainThreadException
03-18 10:28:15.926    6093-6093/jritter.lsv.testing_wit_ai W/System.err at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1147)
03-18 10:28:15.926    6093-6093/jritter.lsv.testing_wit_ai W/System.err at java.net.InetAddress.lookupHostByName(InetAddress.java:418)
03-18 10:28:15.926    6093-6093/jritter.lsv.testing_wit_ai W/System.err at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
03-18 10:28:15.926    6093-6093/jritter.lsv.testing_wit_ai W/System.err at java.net.InetAddress.getAllByName(InetAddress.java:215)
03-18 10:28:15.927    6093-6093/jritter.lsv.testing_wit_ai W/System.err at com.android.okhttp.HostResolver$1.getAllByName(HostResolver.java:29)
03-18 10:28:15.927    6093-6093/jritter.lsv.testing_wit_ai W/System.err at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:232)
03-18 10:28:15.927    6093-6093/jritter.lsv.testing_wit_ai W/System.err at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:124)
03-18 10:28:15.927    6093-6093/jritter.lsv.testing_wit_ai W/System.err at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:272)
03-18 10:28:15.927    6093-6093/jritter.lsv.testing_wit_ai W/System.err at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:373)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:106)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at com.android.okhttp.internal.http.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at com.android.okhttp.internal.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:25)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at jritter.lsv.testing_wit_ai.createDatabase.createDatabaseNow(createDatabase.java:144)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at jritter.lsv.testing_wit_ai.MyActivity.setHttpResult(MyActivity.java:188)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at jritter.lsv.testing_wit_ai.HttpAsyncTask.onPostExecute(HttpAsyncTask.java:25)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at jritter.lsv.testing_wit_ai.HttpAsyncTask.onPostExecute(HttpAsyncTask.java:6)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at android.os.AsyncTask.finish(AsyncTask.java:632)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at android.os.AsyncTask.access$600(AsyncTask.java:177)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at android.os.Handler.dispatchMessage(Handler.java:102)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at android.os.Looper.loop(Looper.java:135)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at android.app.ActivityThread.main(ActivityThread.java:5221)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at java.lang.reflect.Method.invoke(Native Method)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at java.lang.reflect.Method.invoke(Method.java:372)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
03-18 10:28:15.928    6093-6093/jritter.lsv.testing_wit_ai W/System.err at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
03-18 10:28:15.929    6093-6093/jritter.lsv.testing_wit_ai I/System.out url post failed

Dabei ist createDatabase.144 die obige: httpcon.connect();

Vielen dank schonmal
 
Und jetzt gebe mal dein Fehler bei Google oder hier in die Suche ein....
zzzzzzzZZZZzzZZZZzzzZZZZZZZZZZZzzzzz

lg.
 
Ich habe gegoogled und jetzt auch den ersten Fehler weg.
Allerdings muss ich jetzt ja die Http-Anfrage asynchron machen. Ist es denn möglich die ganze Datenbankerstellung Asynchron zu machen? Diese Klasse hat auch den HTTP post inclusive...


Code:
public class createDatabase {
    MyActivity ma;
    SQLiteDatabase myDB = null;


    public createDatabase(MyActivity ma) {
        this.ma = ma;
    }




    public SQLiteDatabase createDatabaseNow(String result) {
        ArrayList<String> id, name, category, addressName, addressStreet, addressZIP, addressCity, addressLatitude,
                addressLongitude, addressPhone, addressEmail, addressWebsite, description;

        final String MY_DB_NAME = "VeranstaltungskalenderSaar";
        final String MY_DB_TABLE = "Veranstaltungen";
        final String MY_DB_TABLE_DATES = "Veranstaltungstermine";
        ContentValues nameCV = new ContentValues();
        ContentValues dateCV = new ContentValues();
        ContentValues timestamp = new ContentValues();


        Object sbdatabase = Configuration.defaultConfiguration().jsonProvider().parse(result);

        String nameSearch = "$.content.blocks[1].content[*].name";
        name = JsonPath.read(sbdatabase, nameSearch);
        String idSearch = "$.content.blocks[1].content[*].id";
        id = JsonPath.read(sbdatabase, idSearch);
        String categorySearch = "$.content.blocks[1].content[*].category.name";
        category = JsonPath.read(sbdatabase, categorySearch);
        String addressNameSearch = "$.content.blocks[1].content[*].address.name";
        addressName = JsonPath.read(sbdatabase, addressNameSearch);
        String addressStreetSearch = "$.content.blocks[1].content[*].address.street";
        addressStreet = JsonPath.read(sbdatabase, addressStreetSearch);
        String addressZIPSearch = "$.content.blocks[1].content[*].address.zip";
        addressZIP = JsonPath.read(sbdatabase, addressZIPSearch);
        String addressCitySearch = "$.content.blocks[1].content[*].address.city";
        addressCity = JsonPath.read(sbdatabase, addressCitySearch);
        String addressLatitudeSearch = "$.content.blocks[1].content[*].address.latitude";
        addressLatitude = JsonPath.read(sbdatabase, addressLatitudeSearch);
        String addressLongitudeSearch = "$.content.blocks[1].content[*].address.longitude";
        addressLongitude = JsonPath.read(sbdatabase, addressLongitudeSearch);
        String addressPhoneSearch = "$.content.blocks[1].content[*].address.phone";
        addressPhone = JsonPath.read(sbdatabase, addressPhoneSearch);
        String addressEmailSearch = "$.content.blocks[1].content[*].address.email";
        addressEmail = JsonPath.read(sbdatabase, addressEmailSearch);
        String addressWebsiteSearch = "$.content.blocks[1].content[*].address.website";
        addressWebsite = JsonPath.read(sbdatabase, addressWebsiteSearch);
        String descriptionSearch = "$.content.blocks[1].content[*].texts[0].body";

        description = JsonPath.read(sbdatabase, descriptionSearch);

        /** Datenbank und Tabellen erstellen wenn noch nicht vorhanden */
      //  System.out.println("inhalt: " + description + " " + description.size());
        //SQLiteDatabase myDB = null;

        try {
            //loescht datenbank, damit die aktuelle geladen werden kann

            ma.deleteDatabase(MY_DB_NAME);
            ma.deleteDatabase(MY_DB_NAME + "-journal");
            ma.deleteDatabase(MY_DB_NAME + "-wal");
            ma.deleteDatabase(MY_DB_NAME + "-WAL");

            myDB = ma.openOrCreateDatabase(MY_DB_NAME, Context.MODE_ENABLE_WRITE_AHEAD_LOGGING, null);

            String query = "CREATE TABLE IF NOT EXISTS " + MY_DB_TABLE + " ( name TEXT,id TEXT,date TEXT,category TEXT,addressName TEXT,addressStreet TEXT,addressZIP TEXT," +
                    "addressCity TEXT,addressLatitude TEXT,addressLongitude TEXT,addressPhone TEXT,addressEmail TEXT, addressWebsite TEXT, description TEXT, timestamp TEXT)";
            myDB.execSQL(query);
            String query2 = "CREATE TABLE IF NOT EXISTS " + MY_DB_TABLE_DATES + "( id TEXT, date TEXT)";
            myDB.execSQL(query2);
            SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");// hh:mm:ss
            Timestamp time1 = new Timestamp(System.currentTimeMillis());
            String date = sdf.format(time1);
            timestamp.put("timestamp", date);
            myDB.insert(MY_DB_TABLE, null, timestamp);

            for (int i = 0; i < name.size() - 1; i++) {

                nameCV.put("name", name.get(i));
                nameCV.put("id", id.get(i));


                nameCV.put("category", category.get(i));
                nameCV.put("addressName", addressName.get(i));
                nameCV.put("addressStreet", addressStreet.get(i));
                nameCV.put("addressZIP", addressZIP.get(i));
                nameCV.put("addressCity", addressCity.get(i));
                nameCV.put("addressLatitude", addressLatitude.get(i));
                nameCV.put("addressLongitude", addressLongitude.get(i));
                nameCV.put("addressPhone", addressPhone.get(i));
                nameCV.put("addressEmail", addressEmail.get(i));
                nameCV.put("addressWebsite", addressWebsite.get(i));
  //                  nameCV.put("description",description.get(i));


         //         System.out.println("namecv sieht s aus "+ nameCV);

                //  System.out.println("timestamp wurde geschrieben");

                myDB.insert(MY_DB_TABLE, null, nameCV);
            }


            for (int i = 0; i < name.size() - 1; i++) {
                String dateSearch = "$.content.blocks[1].content[" + i + "].dates[*].starts_at";
                JSONArray eventDates = JsonPath.read(sbdatabase, dateSearch);
//                System.out.println(eventDates.size());

                for (int b = 0; b < eventDates.size(); b++) {
                    dateCV.put("id", id.get(i));
                    dateCV.put("date", eventDates.get(b).toString());
   //                 System.out.println(dateCV);
                    myDB.insert(MY_DB_TABLE_DATES, null, dateCV);
                }
            }

            //schicke entity var zu wit.ai
            try {
                HttpURLConnection httpcon = (HttpURLConnection) ((new URL("https://api.wit.ai/entities/time/values?v=20141022").openConnection()));
                httpcon.setRequestMethod("POST");
                httpcon.setDoOutput(true);
                httpcon.setRequestProperty("Content-Type", "application/json");
                httpcon.setRequestProperty("Authorization", "Bearer $ JALDCLXHUNVCOJJY7MVOQYFJGF7GCTSJ");                httpcon.connect();
                final String toWriteOut = "{'value': 'test'}";
                final OutputStreamWriter osw = new OutputStreamWriter(httpcon.getOutputStream());
                osw.write(toWriteOut);
                osw.close();
            }
            catch (Exception e){
                e.printStackTrace();
                System.out.println("url post failed");
            }
}

        return myDB;

    }
}

vielen dank im voraus ;)
 
Naja ich würde das ganze in "zwei Phasen" unterteilen.
1. erstellen einer leeren Datenbank
2. Initiales laden beim ersten Start

lg. Dagobert
 
Zuletzt bearbeitet:
was meinst du damit?
Ich initialisiere zur Zeit in der Mainactivity die Datenbank, diese wird täglich neu aus dem internet abgerufen. Deshalb wird sie in createDatabaseNow zuerst gelöscht um dann die heruntergeladene in die SQLite Datenbank zu schreiben.
Kann ich diese ganze Methode asynchron machen? Wenn ja wie?
 
Du rufst die Datenbank täglich ab ? Das macht doch keinen Sinn, außer wenn sich deren Struktur täglich ändert.
Du meinst sicher, du rufst die DATEN täglich ab, oder ?

Dein Code ist ein wenig "suboptimal", ums mal freundlich zu sagen ;)
zerlege den doch erstmal in mehrere Methoden, z.b.
erstelleDatenbankStruktur,
pruefeStrukturUpdateErforderlich,
holeJsonDaten,
trageJsondatenEin,
usw.
Dadurch wird dein Code a) leserlicher und b) ist leichter nachzuvollziehen, wo was hakt im Fehlerfall.
Dieses "alles in einer Klasse" ist ziemlich schlechter Stil und je größer dein Projekt wird,
desto schwieriger wird es für dich da durchzusteigen.
Und wenn du da nach einer längeren Zeit wieder da dran musst, wirst du dich wohl selber verfluchen, wenn du alles in eins machst.
 
Hallo, ja ich rufe zur Zeit die Datenbank komplett neu ab, da sich der Inhalt täglich ändert. Die Struktur ändert sich allerdings nicht. Die Spalten bleiben gleich. Der tägliche Download ist im JSON Format, das wird dann jeden Tag in SQlite gewandelt.
Aber macht es denn Sinn diese ganze Datenbank-geschichte in einen asynchronen task zu legen?

ich habe meinen code jetzt so verändert:
Code:
package jritter.lsv.testing_wit_ai;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.AsyncTask;

import com.jayway.jsonpath.Configuration;
import com.jayway.jsonpath.JsonPath;

import net.minidev.json.JSONArray;

import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;

/**
 * Created by jritter on 23.01.15.
 */
public class createDatabase {
    MyActivity ma;//= new MyActivity();
    SQLiteDatabase myDB = null;


    public createDatabase(MyActivity ma) {
        this.ma = ma;
    }


    public SQLiteDatabase createDatabaseNow(String result) {

        final String MY_DB_NAME = "VeranstaltungskalenderSaar";
        final String MY_DB_TABLE = "Veranstaltungen";
        final String MY_DB_TABLE_DATES = "Veranstaltungstermine";
        ContentValues nameCV = new ContentValues();
        ContentValues dateCV = new ContentValues();
        ContentValues timestamp = new ContentValues();


        Object sbdatabase = Configuration.defaultConfiguration().jsonProvider().parse(result);

        ArrayList<String> id, name, category, addressName, addressStreet, addressZIP, addressCity, addressLatitude,
                addressLongitude, addressPhone, addressEmail, addressWebsite, description;

        String nameSearch = "$.content.blocks[1].content[*].name";
        name = JsonPath.read(sbdatabase, nameSearch);
        String idSearch = "$.content.blocks[1].content[*].id";
        id = JsonPath.read(sbdatabase, idSearch);
        String categorySearch = "$.content.blocks[1].content[*].category.name";
        category = JsonPath.read(sbdatabase, categorySearch);
        String addressNameSearch = "$.content.blocks[1].content[*].address.name";
        addressName = JsonPath.read(sbdatabase, addressNameSearch);
        String addressStreetSearch = "$.content.blocks[1].content[*].address.street";
        addressStreet = JsonPath.read(sbdatabase, addressStreetSearch);
        String addressZIPSearch = "$.content.blocks[1].content[*].address.zip";
        addressZIP = JsonPath.read(sbdatabase, addressZIPSearch);
        String addressCitySearch = "$.content.blocks[1].content[*].address.city";
        addressCity = JsonPath.read(sbdatabase, addressCitySearch);
        String addressLatitudeSearch = "$.content.blocks[1].content[*].address.latitude";
        addressLatitude = JsonPath.read(sbdatabase, addressLatitudeSearch);
        String addressLongitudeSearch = "$.content.blocks[1].content[*].address.longitude";
        addressLongitude = JsonPath.read(sbdatabase, addressLongitudeSearch);
        String addressPhoneSearch = "$.content.blocks[1].content[*].address.phone";
        addressPhone = JsonPath.read(sbdatabase, addressPhoneSearch);
        String addressEmailSearch = "$.content.blocks[1].content[*].address.email";
        addressEmail = JsonPath.read(sbdatabase, addressEmailSearch);
        String addressWebsiteSearch = "$.content.blocks[1].content[*].address.website";
        addressWebsite = JsonPath.read(sbdatabase, addressWebsiteSearch);
        String descriptionSearch = "$.content.blocks[1].content[*].texts[0].body";
        description = JsonPath.read(sbdatabase, descriptionSearch);

        /** Datenbank und Tabellen erstellen wenn noch nicht vorhanden */
        //  System.out.println("inhalt: " + description + " " + description.size());

        //loescht datenbank, damit die aktuelle geladen werden kann

        createNewDatabaseWithTimestamp(MY_DB_NAME, MY_DB_TABLE, MY_DB_TABLE_DATES, timestamp);

        putDataInSqlite(id, name, category, addressName, addressStreet, addressZIP, addressCity, addressLatitude, addressLongitude, addressPhone, addressEmail, addressWebsite, MY_DB_TABLE, nameCV);

        putEventdatesIntoSQLite(id, name, MY_DB_TABLE_DATES, dateCV, sbdatabase);

        //schicke entity var zu wit.ai
        sendEntitiesOfDBToWit();


        return myDB;

    }

    private void sendEntitiesOfDBToWit() {
        try {
            HttpURLConnection httpcon = (HttpURLConnection) ((new URL("https://api.wit.ai/entities/time/values?v=20141022").openConnection()));
            httpcon.setRequestMethod("POST");
            httpcon.setDoOutput(true);
            httpcon.setRequestProperty("Content-Type", "application/json");
            httpcon.setRequestProperty("Authorization", "Bearer $ MYBEARER");
            httpcon.connect();
            final String toWriteOut = "{'value': 'test'}";
            final OutputStreamWriter osw = new OutputStreamWriter(httpcon.getOutputStream());
            osw.write(toWriteOut);
            osw.close();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("url post failed");
        }
    }

    private void putEventdatesIntoSQLite(ArrayList<String> id, ArrayList<String> name, String MY_DB_TABLE_DATES, ContentValues dateCV, Object sbdatabase) {
        for (int i = 0; i < name.size() - 1; i++) {
            String dateSearch = "$.content.blocks[1].content[" + i + "].dates[*].starts_at";
            JSONArray eventDates = JsonPath.read(sbdatabase, dateSearch);
//                System.out.println(eventDates.size());

            for (int b = 0; b < eventDates.size(); b++) {
                dateCV.put("id", id.get(i));
                dateCV.put("date", eventDates.get(b).toString());
//                 System.out.println(dateCV);
                myDB.insert(MY_DB_TABLE_DATES, null, dateCV);
            }
        }
    }

    private void createNewDatabaseWithTimestamp(String MY_DB_NAME, String MY_DB_TABLE, String MY_DB_TABLE_DATES, ContentValues timestamp) {
        ma.deleteDatabase(MY_DB_NAME);
        ma.deleteDatabase(MY_DB_NAME + "-journal");
        ma.deleteDatabase(MY_DB_NAME + "-wal");
        ma.deleteDatabase(MY_DB_NAME + "-WAL");

        myDB = ma.openOrCreateDatabase(MY_DB_NAME, Context.MODE_ENABLE_WRITE_AHEAD_LOGGING, null);

        String query = "CREATE TABLE IF NOT EXISTS " + MY_DB_TABLE + " ( name TEXT,id TEXT,date TEXT,category TEXT,addressName TEXT,addressStreet TEXT,addressZIP TEXT," +
                "addressCity TEXT,addressLatitude TEXT,addressLongitude TEXT,addressPhone TEXT,addressEmail TEXT, addressWebsite TEXT, description TEXT, timestamp TEXT)";
        myDB.execSQL(query);
        String query2 = "CREATE TABLE IF NOT EXISTS " + MY_DB_TABLE_DATES + "( id TEXT, date TEXT)";
        myDB.execSQL(query2);
        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");// hh:mm:ss
        Timestamp time1 = new Timestamp(System.currentTimeMillis());
        String date = sdf.format(time1);
        timestamp.put("timestamp", date);
        myDB.insert(MY_DB_TABLE, null, timestamp);
    }

    private void putDataInSqlite(ArrayList<String> id, ArrayList<String> name, ArrayList<String> category, ArrayList<String> addressName, ArrayList<String> addressStreet, ArrayList<String> addressZIP, ArrayList<String> addressCity, ArrayList<String> addressLatitude, ArrayList<String> addressLongitude, ArrayList<String> addressPhone, ArrayList<String> addressEmail, ArrayList<String> addressWebsite, String MY_DB_TABLE, ContentValues nameCV) {
        for (int i = 0; i < name.size() - 1; i++) {

            nameCV.put("name", name.get(i));
            nameCV.put("id", id.get(i));


            nameCV.put("category", category.get(i));
            nameCV.put("addressName", addressName.get(i));
            nameCV.put("addressStreet", addressStreet.get(i));
            nameCV.put("addressZIP", addressZIP.get(i));
            nameCV.put("addressCity", addressCity.get(i));
            nameCV.put("addressLatitude", addressLatitude.get(i));
            nameCV.put("addressLongitude", addressLongitude.get(i));
            nameCV.put("addressPhone", addressPhone.get(i));
            nameCV.put("addressEmail", addressEmail.get(i));
            nameCV.put("addressWebsite", addressWebsite.get(i));
//                  nameCV.put("description",description.get(i));


            //         System.out.println("namecv sieht s aus "+ nameCV);

            //  System.out.println("timestamp wurde geschrieben");

            myDB.insert(MY_DB_TABLE, null, nameCV);
        }
    }
}

Ist es so besser zu lesen? Den oberen Teil konnte ich leider nicht in eine Methode stecken, da ich da zu viele Ausgänge habe...

Ich habe jetzt noch die Methode wie folgt verändert:
Code:
 private void sendEntitiesOfDBToWit() {
        SyncEntities b= new SyncEntities();
        b.execute();
und weiterhin die Klasse:
Code:
package jritter.lsv.testing_wit_ai;

import android.os.AsyncTask;

import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

public class SyncEntities extends AsyncTask<String,Void,Void> {
    protected Void doInBackground(String... urls) {

        try {
            System.out.println("wuhu funktioniert");
            HttpURLConnection httpcon = (HttpURLConnection) ((new URL("https://api.wit.ai/entities/time/values?v=20141022").openConnection()));
            httpcon.setRequestMethod("POST");
            httpcon.setDoOutput(true);
            httpcon.setRequestProperty("Content-Type", "application/json");
            httpcon.setRequestProperty("Authorization", "Bearer $ MYBEARER");
            httpcon.connect();
            final String toWriteOut = "{'value': 'test'}";
            final OutputStreamWriter osw = new OutputStreamWriter(httpcon.getOutputStream());
            osw.write(toWriteOut);
            osw.close();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("url post failed");
        }
        return null;
    }
}

erstellt. Allerdings funktioniert der Push immer noch nicht, auch wenn jetzt der try-Fall angenommen wird.
Hat jemand ne Ahnung wodran das liegen könnte?
Gruß
Julian
 
Zuletzt bearbeitet:
etwas leserlicher ist das nu schon ;) Könnte noch besser, aber letztlich ja deine Sache :)
Das der Push nicht funktioniert, kann mehrere Ursachen haben. Weißt du wie man
debuggt ? Also, wie man mit einem Debugger umgeht ? Ich weiß nicht, ob du Eclipse oder
AndroidStudio nutzt, ich mag lieber AndroidStudio. Dort kannst du in den grauen Bereich vor der
Sourcecodezeile klicken, so das diese rot hinterlegt wird. wenn du das Programm dann
im Debug-modus ausführst, hält das Programm an dieser Stelle an. Mit F8 kannst du dann
Zeile für Zeile durch gehen und dadurch schnell die Stelle finden, wo die Exception geworfen wird.
Und du kannst während des Durchgehens Variablen und Objekte im aktuellen Zustand/Wert begucken.

in Deinem Fall solltest du bei
HttpURLConnection httpcon = (HttpURLConnec..... den ersten Haltepunkt setzen und dann mal gucken, wie weit du kommst,
bis der Fehler kommt.
Wie man in Eclipse debuggt, hab ich keine Ahnung, aber das Prinzip ist dasselbe.
 
  • Danke
Reaktionen: jdajul
Ich glaube das Problem liegt an der Verbindung selbst, denn wenn ich über die Konsole einen CURL mache funktioniert der auf einmal auch nichtmehr... Trotzdem danke für das Erklären vom Debugger, kann ich bestimmt mal nochmal gebrauchen ;)
 
So ich habe den Fehler gefunden, die CURL anfrage musste geändert werden.
Der CURL ist jetzt:
Code:
curl -XPUT 'https://api.wit.ai/entities/auskunftVar?v=20141022' \
-H "Authorization: Bearer MYBEARER“ \
-H 'Content-Type: application/json' \
-d '{"doc:"Diese Veranstaltungen werden erkannt",
"values":[{"value":"testzeit",
"expressions":["testzeit","City of test","Capital of test"],
"metadata":"CITY_1234"}]}'

Mein Code ist:
Code:
public class SyncEntities extends AsyncTask<String,Void,Void> {
    protected Void doInBackground(String... urls) {

        try {
            HttpURLConnection httpcon = (HttpURLConnection) ((new URL("https://api.wit.ai/entities/auskunftVar?v=20141022").openConnection()));
            httpcon.setRequestMethod("PUT");
            httpcon.setDoOutput(true);
            httpcon.setRequestProperty("Authorization", "Bearer $ aALDCLXHUNVCOJJY7MVOQYFJGF7GCTSJ");
            httpcon.setRequestProperty("Content-Type", "application/json");
            
            httpcon.connect();
            final String toWriteOut = "'{\"doc\":\"Diese Veranstaltungen werden erkannt\"," +
                    "\"values\":[{\"value\":\"testzeit1\"," +
                    "\"expressions\":[\"testzeit1\"]," +
                    "}]}'";
            final OutputStreamWriter osw = new OutputStreamWriter(httpcon.getOutputStream());
            osw.write(toWriteOut);
            osw.close();
            System.err.println(httpcon.getResponseCode());

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("url post failed");
        }
        return null;
    }
}
Die Logcat sagt folgendes...
Code:
03-18 20:10:32.299  20251-20251/jritter.lsv.testing_wit_ai I/art Rejecting re-init on previously-failed class java.lang.Class<net.minidev.json.JSONUtil$JsonSmartFieldFilter>
03-18 20:10:32.299  20251-20251/jritter.lsv.testing_wit_ai I/art Rejecting re-init on previously-failed class java.lang.Class<net.minidev.json.JSONUtil$JsonSmartFieldFilter>
03-18 20:10:32.303  20251-20251/jritter.lsv.testing_wit_ai I/art Rejecting re-init on previously-failed class java.lang.Class<net.minidev.json.JSONUtil$JsonSmartFieldFilter>
03-19 10:10:06.973  32400-32467/jritter.lsv.testing_wit_ai W/System.err 400

Leider funktioniert der PUT nicht vom Programm aus(Fehler 400), CURL von der Konsole klappt. Hat jemand ne Ahnung weshalb?
 
Zuletzt bearbeitet:
Die einfachen Hochkommata um deinen JSON Ausdurck herum sind im Java Code nicht nötig.
So ist es einfach nur ein String, den du übergibst. Das hätte aber aus dem Errorlog deines
Servers hervorgehen sollen. :D
 
  • Danke
Reaktionen: jdajul
Vielen Dank für den Hinweis, ich habe die zwei Hochkommata gelöscht. Leider funktioniert das immer noch nicht. Der Fehler 400 kommt immer noch. Wie kann ich das Errorlog des Servers sehen?

Code:
try {
            HttpURLConnection httpcon = (HttpURLConnection) ((new URL("https://api.wit.ai/entities/auskunftVar?v=20141022").openConnection()));
            httpcon.setRequestMethod("PUT");
            httpcon.setDoOutput(true);
            httpcon.setRequestProperty("Authorization", "Bearer mybearer");
            httpcon.setRequestProperty("Content-Type", "application/json");
            httpcon.connect();
            final String toWriteOut = "{\"doc\":\"Diese Veranstaltungen werden erkannt\"," +
                    "\"values\":[{\"value\":\""+value+"\"," +
                    "\"expressions\":[\""+value+"\"]," +
                    "}]}";
            final OutputStreamWriter osw = new OutputStreamWriter(httpcon.getOutputStream());
            osw.write(toWriteOut);
            osw.flush();
            osw.close();
            System.err.println(httpcon.getResponseCode());

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("url post failed");
        }
 
Ohne zu wissen, was du für einen Server hast, ist die Frage schwer zu beantworten. Man loggt sich drauf ein und guckt halt in die (Server, Webserver und Applikationsabhängige) Logdatei.

Außerdem: dein curl request und dein Androidrequest sind definitiv NICHT gleich, sowohl die Header als auch der Content weichen ab.
 

Ähnliche Themen

OnkelLon
Antworten
13
Aufrufe
1.973
OnkelLon
OnkelLon
D
Antworten
23
Aufrufe
2.503
Data2006
D
S
Antworten
7
Aufrufe
1.152
swa00
swa00
Zurück
Oben Unten