Wie verwenden von API in Android?
Ich versuche, diese API in meine Android-app. Es ist sehr einfach, geben Sie es ein tiny URL und es gibt das original.
Dies ist mein erstes mal mit API. Also, Das ist, wie ich es gemacht habe:
try {
HttpClient client = new DefaultHttpClient();
String url = "http://tiny.pl/htk" //The tiny URL
String getURL = "http://untiny.me/api/1.0/extract?url="+url+"&format=text"; //The API service URL
HttpGet get = new HttpGet(getURL);
HttpResponse responseGet = client.execute(get);
HttpEntity resEntityGet = responseGet.getEntity();
if (resEntityGet != null) {
//do something with the response
Log.i("GET RESPONSE",EntityUtils.toString(resEntityGet));
output.setText(EntityUtils.toString(resEntityGet)); //This is a TextView
}
else {
output.setText("null reponse");
}
} catch(Exception e) {
output.setText("exception");
}
Meine Fragen sind:
- Ist mit
HttpGet
den richtigen Weg im Umgang mit APIs? - Wenn ja, dann, Welche Fehler ich dort gemacht? Ich bekomme immer "Ausnahme" in meinem TextView.
fügen Sie e.printStackTrace(); zu Ihren catch-block. Dann schau mal in dein log-Ausgabe, um zu sehen, welche Ausnahme wird geworfen.
Nichts erscheint. Mein LogCat zeigt nicht alles!! Werden Sie sagen, dass meine Art des Umgangs mit APIs ist die richtige?
Nein, wenn dein TextView zeigt "Ausnahme" dann ist etwas schief gehen. Sie müssen zum hinzufügen von e ist.printStackTrace(); aufrufen, um Ihre catch-block, so dass Sie sehen können, was Ausnahme ist tatsächlich geworfen. Nichts erscheint in Ihrem log Katze, bis Sie tun.
Wir haben keine Rahmen für Ihren code, den Sie zeigen. Ist dies in einem separaten thread? Wenn also Sie nicht berühren können UI-Elemente (Ihre textview) von einem nicht-UI-thread. Wenn Sie Fehler erhalten, sollten Sie post die Fehlermeldung, die Sie erhalten, damit wir helfen können, das problem zurückzuverfolgen
Ich habe es bereits. Nichts erscheint.
Nichts erscheint. Mein LogCat zeigt nicht alles!! Werden Sie sagen, dass meine Art des Umgangs mit APIs ist die richtige?
Nein, wenn dein TextView zeigt "Ausnahme" dann ist etwas schief gehen. Sie müssen zum hinzufügen von e ist.printStackTrace(); aufrufen, um Ihre catch-block, so dass Sie sehen können, was Ausnahme ist tatsächlich geworfen. Nichts erscheint in Ihrem log Katze, bis Sie tun.
Wir haben keine Rahmen für Ihren code, den Sie zeigen. Ist dies in einem separaten thread? Wenn also Sie nicht berühren können UI-Elemente (Ihre textview) von einem nicht-UI-thread. Wenn Sie Fehler erhalten, sollten Sie post die Fehlermeldung, die Sie erhalten, damit wir helfen können, das problem zurückzuverfolgen
Ich habe es bereits. Nichts erscheint.
InformationsquelleAutor iTurki | 2012-03-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sicher, Sie weisen "resEntityget" auf einen string, wenn Sie es konvertieren und verwenden Sie die Zeichenfolge, anstatt zu versuchen, es zu konvertieren erneut. Dabei wird Fehler verursachen.
Versuchen Sie dies:
Dann bin ich nicht sicher. Ich habe dein code funktioniert gut mit keine änderungen.
Logcat zeigt eine REAKTION zu ERHALTEN, wie google, wenn ich die app starte
Was ist dein Ziel-API, wenn du es getestet?
Auch, stellen Sie sicher, dass Sie zuweisen resEntityget um einen string, wenn Sie es konvertieren und verwenden Sie die Zeichenfolge, anstatt zu versuchen, es zu konvertieren erneut. dabei wird Fehler verursachen. Dies tun: String response = EntityUtils.toString(resEntityGet); und verwenden Sie dann die variable Antwort in deinem log / einstellen Ihrer text-Ansicht
InformationsquelleAutor dymmeh
Von dem, was ich habe es gibt eine UnknownHostException geworfen, während der Ausführung.
Komisch. Dies ist nicht angezeigt, zu mir. Können Sie vorschlagen, wie ich dieses Problem lösen?
was meinst du mit
URL encoding
? ersetzen Sie die Zeichenfolge im HttpGet mit URI?InformationsquelleAutor Olek
Ist mit HttpGet den richtigen Weg im Umgang mit APIs?
JA
Wenn ja, dann Welche Fehler ich dort gemacht? Ich bekomme immer "Ausnahme" in meinem TextView.:
weil Sie auf der Durchreise sind falsche url in
HttpGet
Richtigen Weg:
Faust Add url-params in der url:
IHR AUSSEHEN :
VERWENDEN TinyURL "API":
Nun diese url mittels tinyUrl:
ODER WENN SIE MÖCHTEN, VERWENDEN Sie STATISCHE URL-CODIEREN DANN die URL MIT tinyurl mit params übergeben Sie dann in
HttpGet()
FERTIG!
Ja iturki, weil Sie Ihre vollständige url wird nicht codiert mit Parametern. wenn Sie möchten, verwenden statische url-codieren dann die url mit Parameter mit Hilfe von TinyURL API.
ich denke, du hast es?
Dein tinyURL-code nicht kompilieren. es haben sich einige Fehler. zum Beispiel
HttpMethod
cannt aufgelöst werden zu einem Typ.ok,siehe mein edit jetzt funktioniert es
InformationsquelleAutor ρяσѕρєя K