Ok alles gurt
Beiträge von nono124
-
-
Was kommt denn für ein Fehler? Wir sprechen estmal nur von http://
Hast du auch das mit dem Text View geändert denn das wird auch nicht gehen?
wenn du es dir im debugger ansiehst, kommt in der onResponse Methode was an?Die Asyncone Geschichte brauchst du auch nicht denn OkHttp läuft in einen eigenen Thread.
nimm mal den einfachen Code
Code
Alles anzeigenpublic Object getHttpResponse() { OkHttpClient httpClient = new OkHttpClient(); String url = "http://www.zoftino.com/api/storeOffers"; Request request = new Request.Builder() .url(url) .build(); Response response = null; try { response = httpClient.newCall(request).execute(); return response.body().string(); } catch (IOException e) { Log.e(TAG, "error in getting response get request okhttp"); } return null; }
Du solltest auch bedenken das das Beispiel als Rückgabe Wert vo einer HTML Webseite susgeht und du nur den body Teil abfragst den du wohl Gar nicht hast.
-
Ja die Premission Internet im Manifest solte reichen da Internet nicht zu den Dangerous Permissions gehört.
Somit brauchst du zur laufzeit keine setzen abfragen.Zum Thema Cleartexttraffic. Eigentlich erkennt OkHttp an der Url ob es http oder Https mit SSL Verschlüsselung ist. Da du kein Zertifikat hast kannst du nur http machen . Arber mit den
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.connectionSpecs(Arrays.asList(
ConnectionSpec.MODERN_TLS,
ConnectionSpec.CLEARTEXT,
ConnectionSpec.COMPATIBLE_TLS))
.build();Weist du Okhttp an es codiert zu schicken.
"das ist auch nicht aus den Beispiel Link"OkHttpClient okHttpClient = new OkHttpClient();.
Sollte reichen und er macht das selber wenn er auf eine Https Seite Kommt Natürlich nur bestätigte Zertifikate . -
-
Hi,
es scheint sich hier keiner deiner zu erbarmen.
Leider kann ich dir da auch nicht helfen ich mache immer nur ein Zertifikat.
Arbeite aber auch nicht in einer Gruppe. Und Wenn benutzen wir alle das gleiche. -
Mal noch eine bescheidene Frage die premission im Manifest und zur Laufzeit hast du gesetzt?
-
Hi du startest doch die Kamera mit startActivityForResult arber eine Result Mthode sehe ich nicht.
Zb. “protected void onActivityResult(int requestCode, int resultCode, Intent data)”In dieser kommt eigentlich das Ergebnis an.
Bei kleinen Bildern kannst du sie meistens aus dem Result holen, grosse werden als Link übergeben.den Provieder brauchst du um mit den Link die Datei zubekommen.
-
Hallo
also in der Gallerie werden automatisch Bilder die gefunwurden angezeigt.
auser du blendest sie aus dazu gib es die ".nomedia" Datei.
https://galaxy-tipps.de/androi…ehts-beim-samsung-galaxy/ -
Hi für mich sieht dein Code total verdreht aus.
Hast dich nicht an die beispiele in meinen Link gehalten.
http://www.zoftino.com/android-okhttp-exampleNeben bei gesagt sind das keine Fehler sondern nur warnungen.
wenn du mit Https arbeiten willst brachst du definitiv ein zertifikat auf deinem server. Wenn es ein gekauftes von einer ofizellen stelle ist, wir Android es auch ohne Probleme Anerkennen. Bei einem selbst erstellte musst du das dem User mitgeben damit er es installieren kann oder schaue dir das Thema „Client Server Kommunikation https mit Zertifikaten“ an.
Zu deinem Code.
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.connectionSpecs(Arrays.asList(
ConnectionSpec.MODERN_TLS,
ConnectionSpec.CLEARTEXT,
ConnectionSpec.COMPATIBLE_TLS))
.build();
Ist irgentwie nicht richtig . entspricht auch nicht den üblichen Beispielen.
Die Variable "okHttpClient" bekommt somit auch keine Instznz auf OkHttpClient()So erstellt man keinen Bulider.
Dem Client wird kein Bulider übergeben. Mach das einzeln.Habe das Gefühl das du dich mal mit dem http Protokoll auseinandersetzen solltest. Da nutzen dir die besten libs nichts wenn du nicht weißt wann du was brauchst zb was ein get oder ein post Aufruf ist usw. Das war auch das Problem in deiner ersten Version.
Wir gesagt kann ich vom Browser auf deinen Server mit http zugreifen IP steht ja im Quellcode. Was da für ein string kommt habe ich schon gepostet. Ist der richtig?
Dieser Code entsricht dem was du mit deinem Browser machst. einfach ein Get.
mit call back methode AsyncCode
Alles anzeigen@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TextView textView = findViewById(R.id.textView); OkHttpClient okHttpClient = new OkHttpClient(); String url = "http://***.*.***.***/reader.php"; Request request = new Request.Builder() .url(url) .build(); okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { e.printStackTrace(); } @Override public void onResponse(Call call, Response response) throws IOException { if(response.isSuccessful()) { final String myResponse = response.body().string(); MainActivity.this.runOnUiThread(new Runnable() { @Override public void run() { textView.setText(myResponse); } }); } } }); }
Auserdem gibt es auch scheinbar Probleme beim aufruf des TextView aus der MainActivity bin mir nicht sicher ob das in der runOnUiThread mit der textView Variablen so past . Ich würde die Global deffiniren und nicht in der onCrate und schon gar nicht final. da kannste sie auch nicht mehr ändern. Mach die Global im Klassenrupf.
Das geht mit sichrheit schief.i
-
Hi das hier dürfte doch fast das gleiche Problem sein.
Anzeige der Seitennummer im ViewPager -
Hallo
einfacher ist es mit der Lib OKHTTPhttp://square.github.io/okhttp/
http://www.zoftino.com/android-okhttp-example -
Hallo eine Frage zu dem Thema
Ist das dein eigener Server auf dem die MySql DB läuft ?Mal noch eine Frage wo baust du deine HttpURLConnection auf?
Du hast nur eine normal UrlConnection und keine Http oder Https.HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("POST");
finde ich auch nicht in deinem Code.habe auch mal versucht auf die Adresse vom Browser aus zuzugreifen.
Mit https kommt eine Fehlermeldung wegen fehlenden Zertifikates.
Nur http bekomme ich einen Json Sting zurück.
[{"id":"1","name":"bob","age":"18"},{"id":"2","name":"kevin","age":"19"},{"id":"3","name":"Mr. Osek","age":"18"},{"id":"1","name":"Mr. Osek","age":"18"},{"id":"2","name":"Kevin","age":"19"}]
Wenn du Https haben willst brauchst du auch ein Zertifikart.
Client Server Kommunikation https mit Zertifikaten
Ps. halte dich mal wirklich an den link von Andy61
Zuerst muss aber immer ein Http Get erfolgen kein Post sory.
Mit dem Browser schickst du immer ein Get wenn du eine Seite anforderst. -
-
schade das es so einfach nicht geht. Kann dir da jetzt nicht helfen dazu muss ich mich erst in den viewpager einlesen den benutze ich fast nie.
Aber eine onklick in dem padger muss es geben. -
Hi da du auf meinen Beitrag nicht Antwortest noch eine Ergänzung.
Versuche es in der m@Override
public CharSequence getPageTitle(int position) { //toast}in deiner pager Klasse mit posiiton+1 da der pager mit 0 anfängt. -
Dann wird es für dich ein langer Weg werden.
Kann dir nur empfehlen dich erst mal mit den Grugaen von Java zu beschäftigen. -
Hi Also Android Studio ist eine richtige Programmiere Umgebung , mit der du in Java und dem Android SDK richtig Programmierst . Das ist kein AppBaukasten.
Auch wenn es viele Bibliotheken gibt, und Code Beispiele, bleibt dir das richtige programmieren nicht erspart und dazu sind zumindest Java Grundwissen gefragt.
In wie weit du sowas mit den App-Baukästen wie „App Invetor“ machen kannst weiß ich nicht. Meistens ist da bei sehr speziellen Sachen Schluss.
Dafür wärest du hier auch im falschen Forum. Hier arbeiten fast alle mit AS.Also fange erst mal an Java zu lernen.
Kannst du eine andere Programmiersprache?
-
Richtig man wägst mit den Aufgaben.
Trotzdem würde ich etwas kleiner und mit den Grundlagen anfangen.
Hast du Programmiere Kenntnisse in Java wenn nicht fange damit an. -
Hi
du solltest den Toast in der Event Methode OnClick machen also wenn du dienächste Seite anzeigst nicht wenn sie im Hintergrund geladen wird.
Das müsste dann in der von FragmentPagerAdapter abgeleiteten Klasse sein. -
Zitat
ich hoffe auf mehr antworten
Könntest auch auf Fragen Antworten damit man sich ein besseres Bild von Dir machenkann.Deine Grundfrage habe ich dir beantwortet ob es geht.
Für so Schnipsel Jagd gibt es doch auch schon fertige Apps.