Archiv

Archiv für die Kategorie ‘Howto’

Howto: Google Android – Kommunikation via HttpClient und JSON

21. Juni 2010

Da es für Java jede Menge unterschiedliche Implementierungen eines HTTPClient gibt, hier mal ein Beispiel für die die Variante der Apache Foundation die im Google Android SDK zum Einsatz kommt. In diesem Beispiel geht es darum sich auf einem entfernten Server einzuloggen und anschließend Daten via JSON abzufragen und wieder in getypte Java Objekte umzuwandeln. Dabei speichert der Server den Login-Status in einer Session. Die SessionID wird auf der Clientseite in einem Cookie gespeichert, und muss bei jeder Anfrage mitgesendet werden.

Funktionsweise

Verbindung herstellen

HttpGet get = new HttpGet(String.format("%s?username=%s&password=%s", loginUrlHost, user, pass));
DefaultHttpClient client = new DefaultHttpClient();
ResponseHandler<String> responseHandler = new BasicResponseHandler();
HttpResponse response = client.execute(get);

Anwort auswerten

int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
String responseText = responseHandler.handleResponse(response);
}

JSON parsen

import org.json.JSONException;
import org.json.JSONObject;

public class LoginResponse extends JSONObject {
    private boolean success;
    private String message;

    public LoginResponse(String string) throws JSONException {
        super(string);
        success = getBoolean("success");
        message = (get("message").equals(null))?"":getString("message");
    }

    public boolean isSuccess() {
        return success;
    }

    public String getMessage() {
        return message;
    }
}
LoginResponse loginResponse;
 try {
 loginResponse = new LoginResponse(responseText);
 } catch (JSONException e) {
 Log.d("LOGIN_ERROR(INVALID_RESPONSE)", e.getMessage(), e);
 errorState = INVALID_RESPONSE;
 return INVALID_RESPONSE;
 }

Cookies auslesen

List<Cookie> cookies = client.getCookieStore().getCookies();
 for (int i = 0; i < cookies.size(); i++) {
 Cookie cookie = cookies.get(i);
 Log.d("Cookie-Name:", cookie.getName());
 Log.d("Cookie-Value:", cookie.getValue());
 break;
 }

Cookies senden

DefaultHttpClient client = new DefaultHttpClient();
CookieStore cookieStore = client.getCookieStore();
cookieStore.addCookie(loginCookie);
client.setCookieStore(cookieStore);
Author: burnred Categories: Howto Tags: , , , , , , ,

Howto: PDF Formulare mit PHP ausfüllen

24. April 2010

Wie erzeuge ich ein Formular?

PDF Formulare kann man entweder direkt mit PHP erzeugen z.B. mit der Klasse tcpdf oder aber, wenn man Wert darauf legt das dass Ganze ansprechend aussieht, mit OpenOffice. Natürlich funktioniert das ganze auch mit den Produkten von Adobe.

Wie fülle ich das Formular aus?

Adobe stellt mit FDF ein Format zur Verfügung mit den es möglich ist PDF Formulare auszufüllen. Die FDF Datei selbst enthält dabei die Daten die in die Felder eingesetzt werden sollen und den Namen des dazu gehörenden PDF Formats.

Wenn man diese Methode benutzt erhält man schon mal ein ausgefülltes Formular. Das ist aber immer noch kein PDF und abhängig vom ursprünglichen Dokument.

Wie wird daraus wieder ein PDF?

An dieser Stelle kommt das PDF Toolkit ins Spiel. Diesem Tool, das man irgendwo auf den Server ablegt, übergibt man die PDF und FDF Datei und erhält eine neue ausgefüllte PDF Datei.

Author: burnred Categories: Howto Tags: , , , , ,

Howto: Administrative Freigaben unter Windows 7 mit Heimnetzgruppe

23. Dezember 2009

Der Zugriff auf administrative Freigaben wie C$ bereitet unter Windows 7 wie schon unter Vista so einige Probleme.
Zu aller erst muss der schon von Vista bekannte Registry Schlüssen gesetzt werden “HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System/LocalAccountFilterPolicy = DWORD:0×1″.

Das nächste Problem entsteht durch die vorhandene Heimnetzgruppe in der man auf anderen Rechnern automatisch als HomeGroupUser$ angemeldet wird. Da man sich pro Rechner nur mit einen Benutzer gleichzeitig anmelden kann, erscheint auch bei Eingabe des richtigen Nutzers samt Kennwort immer Zugriff verweigert.

Abhilfe schafft hier die Einstellung: “Benutzerkonten und Kennwörter zum Herstellen von Verbindungen mit anderen Computern verwenden” in den erweiterten Freigabeeinstellungen. Für Leute die ihr Benutzerkonto nicht mit einer Live-ID verknüpft haben sollte das ganze nach einen Neustart funktionieren.

Wer dies allerdings getan hab wird sehen das es auf dem anderen Rechner immer mit seiner Live-ID angemeldet wird statt mit seinem echten Nutzernamen. Dieses Problem lässt sich nur lösen indem man die Verknüpfung von Live-ID und Nutzerkonto wieder löst.

Author: burnred Categories: Bugs, Howto, Tipps & Tricks Tags: , ,

Howto: iTunes mit Multimediatasten steuern

6. Dezember 2009

Wer auch das Problem hat, dass iTunes damit es auf die Multimediatasten moderner Tastaturen reagiert, zwangsläufig im Vordergrund sein muss benötigt ein Plugin welches Abhilfe schafft. Das Plugin sorgt dafür das iTunes fortan auch auf globale Tastendrücke reagiert, wenn es z.B. minimiert ist oder nicht den Fokus besitzt.
Ursprünglich stammt das Plugin vom Nutzer localhost im aqua-soft Forum. Es handelt sich dabei um eine einzelne DLL Datei, die in das Plugin Verzeichnis von iTunes kopiert werden muss.

Bei XP z.B.: “C:\Programme\iTunes\Plug-Ins”
Bei Vista/7: “C:\Benutzer\<Nutzername>\AppData\Roaming\Apple Computer\iTunes\iTunes Plug-ins”

Author: burnred Categories: Howto Tags: , , , ,

Howto: Fix für Shader Compliation Error bei Shaun White Snowboarding

15. November 2009

Wer auch das Problem hat, dass die Retail Version von Shaun White Snowboarding unter Windows 7 einen “shader compilation error” beim Start meldet, kann das Problem ähnlich lösen, wie wenn dieses bei der Steam Version auftritt.
Man kopiert die Datei “EKShadersPC.BIN” von “\ProgramData\Ubisoft\SWSnow” nach “\Users\Public\Ubisoft\SWSnow”

Author: burnred Categories: Bugs, Howto, Spiele Tags: , , ,

Howto: Fritz!Box 7270 DNS-Server ändern

18. Juni 2009

Passend zum neuen Zensur Gesetz der Bundesregierung hier eine Anleitung wie man bei der Fritz!Box einen beliebigen freien DNS Server einstellen kann.

Hinweise:

  • AVM übernimmt keinerlei Support für eine Fritz!Box mit veränderter Firmware
  • Ich übernehme keinerlei Haftung für Schäden die durch modifizieren der Firmware entstehen
  • Die Konfiguration sollte vor Beginn der Modifikation gesichert werden, da diese bei Fehlern zurück gesetzt wird
  • diese Anleitung dient nicht dazu jemanden zu unterstützen sich illegal Zugang zu “gesperrten” Seiten zu verschaffen, sondern soll lediglich die Nutzlosigkeit einer DNS Sperre demonstrieren

Die Schritte:

  1. Einen neuen DNS Server aussuchen
  2. Telnet Zugang für die Fritz!Box aktivieren
  3. Verbinden
  4. Konfigurationsdatei bearbeiten
  5. Neustarten
  6. Telnet Zugang für die Fritz!Box deaktivieren

Einen neuen DNS Server aussuchen

Zu aller erste brauchen wir erst mal einen neunen DNS Server. Ich verwende in diesem Beispiel OpenDNS. Man könnte aber auch jeden beliebigen z.B. aus der Liste des CCC verwenden.

Telnet Zugang für die Fritz!Box aktivieren

Um den Telnet Zugang für die Fritz!Box zu aktivieren wählen man auf einem angeschlossen Telefon “#96*7*” . Es ertönt ein kurzer Signalton, ab jetzt ist der Telnet-Zugang aktiviert.

Verbinden

Wenn das Betriebsystem ein Telnet Kommando zur Verfügung stellt, kann man dieses verwenden, falls nicht kann man zum verbinden auch Putty verwenden.

Man verbindet sich also also über “telnet fritz.box”. Bei erfolgreicher Verbindung fordert einen die Box zur Eingabe des Passworts für das Webinterface auf.

telnet fritz.box

Konfigurationsdatei bearbeiten

Nach erfolgreichem Verbinden befindet man in der Konsole des auf der Fritz!Box laufenden Systems BusyBox.
zunächst navigiert man mit “cd /var/flash” in das Firmware-Verzeichnis. Als nächstes öffnet man mit den Editor die Konfigurationsdatei “nvi ar7.cfg”.

cd /var/flash
nvi ar7.cfg

Hinweis: Bei dem Editor handelt es sich um VI dessen Bedienung ist nicht ganz einfach.

In der Datei sucht man die Zeile “overwrite_dns1 = 0.0.0.0;” bzw. “overwrite_dns2 = 0.0.0.0;”.  Diesen Zeilen werden jetzt durch die OpenDNS Server ersetzt.

overwrite_dns1 = 0.0.0.0;
overwrite_dns2 = 0.0.0.0;

ersetzen durch:
overwrite_dns1 = 208.67.222.222;
overwrite_dns2 = 208.67.220.220;

Hinweis: Die Einträge kommen in der Datei 2 mal vor, es müssen beide ersetzt werden.

Jetzt kann man die Datei abspeichern und den Editor verlassen.

Neustarten

Die Fritz!Box kann man durch Eingabe von “reboot” neustarten. Nach erfolgreichem Neustart wird der neue DNS Server verwendet. Falls man einen Fehler gemacht hat und die Konfigurationsdatei fehlerhaft ist wird die Box automatisch auf Werkseinstellungen zurück gesetzt.

reboot

Telnet Zugang für die Fritz!Box deaktivieren

Durch wählen von “#96*8*” wird der Telnet-Zugang wieder deaktiviert.