[JAVA] Senden Sie den verwendeten Gutscheincode an den angegebenen Endpunkt zurück

Dies ist eine Methode zur Benachrichtigung der Ergebnisse, wenn eine Rückmeldung an den Endpunkt des Messsystems erforderlich ist, einschließlich Informationen wie dem Gutscheincode, mit dem die Ergebnisse der Werbung gemessen werden.

Diesmal habe ich HttpURLConnection verwendet.

Sicherheitskonfigurationseinstellungen und Manifesteinstellungen

Diese Einstellung ist nicht erforderlich, wenn die einzustellende Postback-Ziel-URL https: // ~ lautet. Eine unverschlüsselte Kommunikation ist unter Android 9 (Pie) nicht möglich, dh die Kommunikation mit URLs, die mit http: // beginnen, ist standardmäßig nicht möglich.

Sicherheitskonfigurationseinstellungen

Erstellen Sie die folgenden Dateien im Verzeichnis app / xml.

network_security_config.xml


<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">XXXX.net</domain>
    </domain-config>
</network-security-config>

Ermöglicht die unverschlüsselte Kommunikation (http: //) mit der angegebenen Domäne (cleartextTrafficPremitted true).

Manifesteinstellungen

Danach im Attributteil des Anwendungstags von Android Manifest

android:networkSecurityConfig="@xml/network_security_config

Hinzufügen. (Beispiel)

AndroidManifest.xml


<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:networkSecurityConfig="@xml/network_security_config">

Postback

Führen Sie die folgende Methode aus, wenn ein Ereignis oder ähnliches auftritt, für das Sie ein Postback generieren möchten. Benutzereingabewerte, die sich für jedes Ereignis ändern können, z. B. Gutscheincodes, werden als Argumente empfangen.

Activity.java


public void postBack(final String cp){
        new Thread(new Runnable() {
            @Override
            public void run() {
                try{
                    URL url = new URL("https:/XXXX.net?coupon="+cp);
                    HttpURLConnection con = (HttpURLConnection)url.openConnection();
                    String str = InputStreamToString(con.getInputStream());
                    Log.d("HTTP",str);
                }catch(Exception e){
                    System.out.println(e);
                }
            }
        }).start();
    }

    static String InputStreamToString(InputStream is) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();
        String line;
        while( (line=br.readLine()) != null ){
            sb.append(line);
        }
        br.close();
        return sb.toString();
    }

Referenz

HttpURLConnection (Java Platform SE 8)

Recommended Posts

Senden Sie den verwendeten Gutscheincode an den angegebenen Endpunkt zurück
Code zum Verbinden von Rails 3 mit PostgreSQL 10
Sobald Sie es sehen, ist es ein verdammter Code
Was tun, wenn Ihnen der von swagger-codegen-cli generierte Code nicht gefällt?
Ich habe versucht, die verwendeten Methoden zusammenzufassen
Warum war das Lesen des Codes schmerzhaft?
Code, der verwendet wird, wenn Sie Json nur mit Standardbibliotheken in Java (verbesserte Version) verarbeiten möchten. Gson ist nicht erforderlich