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.
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.
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).
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">
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();
}
HttpURLConnection (Java Platform SE 8)
Recommended Posts