Android http request an interne ip adresse funktioniert nicht

Besset

Mitglied
Guten Tag,
Aktuell arbeite ich an einer app die eine httprequest mit 2 parametern an ein gerät (esp8266) via ip-adresse in meinem heimnetz senden soll. verwende ich eine öffentliche domain (z.B. https://www.google.com/) funktioniert es. auch wenn ich meine persöhnliche request im browser eingebe klappt es. Beide codes scheinen also in ordnung zu sein. Meine vermutung ist das die app noch eine permission braucht um mit dem lokalen netzwer zu interagieren zu können.

Was mach ich also falsch?

[CODE lang="java" title="mein java code:"]void setPlug(int num, int state) {
OkHttpClient client = new OkHttpClient();

String url = "https://192.168.178.62/?num=" + num + "&state=" + state;
//String url = "https://www.google.com/";

Request request = new Request.Builder()
.url(url)
.build();

client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
responso.setText("hat wohl nicht geklappt");
}
});
}

@Override
public void onResponse(Call call, Response response) throws IOException {
if(response.isSuccessful()) {
String res = response.body().string();

MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
responso.setText(res);
}
});
}
}
});
}[/CODE]
 
Hallo Besset,

eine zusätzliche Permission für ein internes Netzwerk gibt es soweit ich weiß nicht, das einzige was ich immer brauche, ist die Internt Permission. Und die müsstest du ja haben, wenn google funktioniert.

Hast du ausprobiert, dir die fertige URL aus der Konsole zu kopieren und im Browser aufzurufen, oder hat du die von Hand eingetippt? Vielleicht hat sich da einfach irgendein Fehler eingeschlichen (Vom Gefühl her würde ich sagen, dass dein Heimnetz kein SSL hat und deshalb da nur "http" anstatt "https" stehen muss 😇)
 
Hallo Besset,

eine zusätzliche Permission für ein internes Netzwerk gibt es soweit ich weiß nicht, das einzige was ich immer brauche, ist die Internt Permission. Und die müsstest du ja haben, wenn google funktioniert.

Hast du ausprobiert, dir die fertige URL aus der Konsole zu kopieren und im Browser aufzurufen, oder hat du die von Hand eingetippt? Vielleicht hat sich da einfach irgendein Fehler eingeschlichen (Vom Gefühl her würde ich sagen, dass dein Heimnetz kein SSL hat und deshalb da nur "http" anstatt "https" stehen muss 😇)
Wie bereits vorher erwähnt klappt es wenn ich die IP in Browser eingebe. Das s hat sich da eingeschlichen als ich die Zeile neu geschrieben hatte nachdem dem ich die google-url auskommentiert hatte. Also am s liegt es leider auch nicht. (Im Browser funktioniert auch mit s).
Aber trotzdem danke
 
Eigentlich sollte das Problemlos funktionieren. Deswegen meine Nachfragen, nur zur Sicherheit:
* Browser ist Broweser im Handy gemeint, richtig?
* Das Handy ist zum Zeitpunkt des Tests auch mit dem lokalen Wlan verbunden?
 
Also ich selbst habe ähnliches bereits ausprobiert.

Einmal zu den permissions
Java:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Als zweites ist mir aufgefallen, ob man es im Emulator testet oder auf der echten Hardware kann auch einen Unterschied machen. Lokale anfragen im Netzwerk konnte ich nur auf dem echten Smartphone testen. Im Emulator hat es manchmal einfach nicht funktioniert, kann mir auch nicht erklären, warum dem so war.
 
Was genau funktioniert nicht? Kannst du den Stacktrace von der Exception posten?
Also ich selbst habe ähnliches bereits ausprobiert.

Einmal zu den permissions
Java:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Als zweites ist mir aufgefallen, ob man es im Emulator testet oder auf der echten Hardware kann auch einen Unterschied machen. Lokale anfragen im Netzwerk konnte ich nur auf dem echten Smartphone testen. Im Emulator hat es manchmal einfach nicht funktioniert, kann mir auch nicht erklären, warum dem so war.
Ok hat sich gerade erledigt, als ich soeben mein Pc und androidstudio gestartet habe um das stacktrace zu kopieren hat es einfach so geklappt obwohl ich nix geändert habe.
vielen Dank für die Hilfe
 
Also ich selbst habe ähnliches bereits ausprobiert.

Einmal zu den permissions
Java:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Als zweites ist mir aufgefallen, ob man es im Emulator testet oder auf der echten Hardware kann auch einen Unterschied machen. Lokale anfragen im Netzwerk konnte ich nur auf dem echten Smartphone testen. Im Emulator hat es manchmal einfach nicht funktioniert, kann mir auch nicht erklären, warum dem so war.
Bei mir hatte beides nicht geklappt, aber dankeschön.
 

Zurück
Oben