Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-04-2011, 14:19   #1
DeAndreon
Senior Member
 
L'Avatar di DeAndreon
 
Iscritto dal: Dec 2008
Messaggi: 975
[Java me] aiuto integrazione banner

Ciao a tutti! Ho bisogno di un grande aiuto...
In pratica, nella mia applicazione ho bisogno di visualizzare un banner pobblicitario. Il network di advertising che vorrei usare mi dice questo per integrare il banner:

1. In order to utilize our Server-to-Server API your application must support the ability to handle HTML content inside your application.


2. Once you have the object in your application that can receive HTML content, you must pass via an HTTP GET call the required variables to make an ad call with the appropriate key/value pairs.
Unique Identifier of that user (AUID)
Public IP Address of the Device (UIP)
User Agent String of the Device’s Browser (UA)
Placement ID (APID)


3. Formulate the ad call via the example below.

oswodddhttp://ads.mp.mydas.mobi/getAd?apid=357&auid=testingauid&uip=66.209.31.31&ua=testing&mode=test

A quanto ho capito devo formulare una richiesta di tipo GET al loro server...
Come posso realizzarla in java me? Come mi devo muovere?
Mi potreste dare gentilmente un codice d'esempio sull'esempio postato?

Grazie a tutti in anticipo!

Ultima modifica di DeAndreon : 18-04-2011 alle 16:13.
DeAndreon è offline   Rispondi citando il messaggio o parte di esso
Old 18-04-2011, 14:27   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
E' un po' che non pasticcio più come la versione me (diciamo una decina d'anni va ) ma puoi usare un URL per fare un get, devi solo codificare la stringa della richiesta (così come la vedi, ad esempio, nella barra degli indirizzi di un browser). Quando apri il flusso di lettura dell'url l'api automaticamente invia la richiesta, attende la risposta e ti fornisce i byte della risposta attraverso l'input.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 18-04-2011, 15:02   #3
DeAndreon
Senior Member
 
L'Avatar di DeAndreon
 
Iscritto dal: Dec 2008
Messaggi: 975
Ciao! Grazie per la risposta. Ma in pratica per far funzionare il banner devo solo implementare questa richiesta tramite get? Perchè non ho capito bene cosa vuole la richiesta che mi è stata fatta per visualizzare il banner...


In pratica dovrei fare un codice del genere che c'è qui?:

http://j2me-codes.blogspot.com/2007/...-php-http.html


Gentilmente, se ti va soprattutto, potresti farmi un esempio di codice?
Non sono molto pratico con l'http... Ho solo una buona conoscenza di java(grazie all'esame di programmazione ad oggetti).


Guarda questo:

http://www.java2s.com/Tutorial/Java/...etwithJ2ME.htm

sembra fare al caso mio... Questo codice può soddisfare la richiesta che mi è stata fatta per mettere il banner nel mio programma?


Grazie mille!

Ultima modifica di DeAndreon : 18-04-2011 alle 16:05.
DeAndreon è offline   Rispondi citando il messaggio o parte di esso
Old 18-04-2011, 18:01   #4
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
L'http get dell'esempio va benissimo. Poi devi fare il parsing del codice html che ti arriva come risposta (a meno che non abbiano aggiunto in widget per la visualizzazione di contenuti html alle api di Jme).

Se il banner è semplicemente un'immagine passiva, devi solo pescare l'url dell'immagine, caricarla e mostrarla. Se è un'immagine con link devi scrivere anche la logica di gestione del link. Se è componente html più complicato è già più dura.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 18-04-2011, 18:25   #5
DeAndreon
Senior Member
 
L'Avatar di DeAndreon
 
Iscritto dal: Dec 2008
Messaggi: 975
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
L'http get dell'esempio va benissimo. Poi devi fare il parsing del codice html che ti arriva come risposta (a meno che non abbiano aggiunto in widget per la visualizzazione di contenuti html alle api di Jme).

Se il banner è semplicemente un'immagine passiva, devi solo pescare l'url dell'immagine, caricarla e mostrarla. Se è un'immagine con link devi scrivere anche la logica di gestione del link. Se è componente html più complicato è già più dura.
Ciao! Grazie mille
Oddio, la cosa si fa ancora più complicata :S Cos'è il parsing? :S
Ho fatto il mio codice riutilizzando quello:

Codice:
 urlstring = "http://ads.mp.mydas.mobi/getAd?apid=41608&auid=testingauid&uip=66.209.31.31&ua=testing&mode=test";
            new Thread() {
                public void run() {                 // sending a GET request to web server
                    String resultstring = sendGetRequest(urlstring);
                    
                   }
            }.start();



// send a GET request to web server
    public String sendGetRequest(String urlstring)
    {       HttpConnection hc = null;
            InputStream dis = null;
          ByteArrayOutputStream baos = new ByteArrayOutputStream();
          try
          {          /* openning up http connection with the web server
           *  when the connection is opened, the default request
           *  method is GET         */
              hc = (HttpConnection)
                      Connector.open(urlstring);
              // establishing input stream from the connection
              dis = hc.openInputStream();
              byte[] buf = new byte[512];
              // reading the response from web server character by character
              int red;
              while ((red = dis.read(buf)) != -1 ) {
                  baos.write(buf, 0, red);         }
          }       catch (IOException ioe)
          {         return "ERROR";      }
          finally {
              try { if(hc != null)
                  hc.close(); } catch (IOException ignored) {
                  }
              try { if(dis != null) dis.close();}
              catch (IOException ignored) {}
          }
          return baos.toString() /*String(baos.getBytes())*/;
    }

Ora cosa devo fare per visualizzare l'immagine?


Grazie ancora
DeAndreon è offline   Rispondi citando il messaggio o parte di esso
Old 18-04-2011, 21:30   #6
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
La stringa restituita dal metodo sendGetRequest è (il corpo di ) un messaggio in formato HTTP.

C'è uno standard che definisce cosa significhi "messaggio HTTP" ma, nel nostro caso, dovrebbe trattarsi di un messaggio HTTP il cui corpo contiene del codice HTML.

Nella fattispecie, il codice risulta (da una prova):

Codice:
<a href="http://bank06.mi.ads.mp.mydas.mobi/getAd.php5?apid=357&amp;ua=testing&amp;uip=66.209.31.31&amp;auid=testingauid&amp;testua=Java%2F1.6.0_24&amp;testuip=127.0.0.1&amp;testuid=testingauid&amp;mode=results">
    <img src="http://bank06.mi.ads.mp.mydas.mobi/getAd.php5?apid=357&amp;ua=testing&amp;uip=66.209.31.31&amp;auid=testingauid&amp;testua=Java%2F1.6.0_24&amp;testuip=127.0.0.1&amp;testuid=testingauid&amp;mode=validate" border="0"/>
</a>
Cioè è un'immagine vincolata ad un collegamento.

I dati dell'immagine li ottieni collegandoti all'url definito come valore dell'attributo src (in rosso).

Il codice html restituito dice anche che quando l'utente clicca su quell'immagine il browser deve caricare la pagina indicata dal valore dell'attributo href di a (in verde).

Se la struttura è sempre quella (e trattandosi di un banner potrebbe anche esserlo) allora puoi fare il parsing (cioè analisi e divisione in blocchi funzionali di un certo flusso di dati) applicando questa logica:

l'indirizzo dei dati da caricare quando l'utente "attiva" l'immagine del banner è (tutto quello che è contenuto tra href=" e il successivo "), l'indirizzo del flusso dati dell'immagine da caricare è (tutto quello che è contenuto tra src=" e il successivo ").
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 18-04-2011, 22:21   #7
DeAndreon
Senior Member
 
L'Avatar di DeAndreon
 
Iscritto dal: Dec 2008
Messaggi: 975
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
La stringa restituita dal metodo sendGetRequest è (il corpo di ) un messaggio in formato HTTP.

C'è uno standard che definisce cosa significhi "messaggio HTTP" ma, nel nostro caso, dovrebbe trattarsi di un messaggio HTTP il cui corpo contiene del codice HTML.

Nella fattispecie, il codice risulta (da una prova):

Codice:
<a href="http://bank06.mi.ads.mp.mydas.mobi/getAd.php5?apid=357&amp;ua=testing&amp;uip=66.209.31.31&amp;auid=testingauid&amp;testua=Java%2F1.6.0_24&amp;testuip=127.0.0.1&amp;testuid=testingauid&amp;mode=results">
    <img src="http://bank06.mi.ads.mp.mydas.mobi/getAd.php5?apid=357&amp;ua=testing&amp;uip=66.209.31.31&amp;auid=testingauid&amp;testua=Java%2F1.6.0_24&amp;testuip=127.0.0.1&amp;testuid=testingauid&amp;mode=validate" border="0"/>
</a>
Cioè è un'immagine vincolata ad un collegamento.

I dati dell'immagine li ottieni collegandoti all'url definito come valore dell'attributo src (in rosso).

Il codice html restituito dice anche che quando l'utente clicca su quell'immagine il browser deve caricare la pagina indicata dal valore dell'attributo href di a (in verde).

Se la struttura è sempre quella (e trattandosi di un banner potrebbe anche esserlo) allora puoi fare il parsing (cioè analisi e divisione in blocchi funzionali di un certo flusso di dati) applicando questa logica:

l'indirizzo dei dati da caricare quando l'utente "attiva" l'immagine del banner è (tutto quello che è contenuto tra href=" e il successivo "), l'indirizzo del flusso dati dell'immagine da caricare è (tutto quello che è contenuto tra src=" e il successivo ").
Ciao! Grazie mille per l'aiuto che mi stai dando. confermo, il codice d'esempio trovato funziona, mi ritorna il tuo stesso valore.
Ora devo fare il parsing.
In pratica devo estrapolare l'indirizzo dell'immagine e visualizzare il banner in un item e quando viene cliccato usare il link per il click, giusto?

Per estrapolare ho pensato alle funzioni di String come substring però il trucco dovrebbe funzionare se non cambiasse mai la lunghezza della stringa...
DeAndreon è offline   Rispondi citando il messaggio o parte di esso
Old 18-04-2011, 22:35   #8
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Esiste sicuramente un'espressione regolare per farlo ma te la cavi anche con "indexOf".

Il primo pezzo inizia con href=" e finisce con "

Detta s la stringa restituita dal metodo in esame, l'indirizzo del link è:

String startToken = "href=\"";
String endToken = "\"";
int start = s.indexOf(startToken) + startToken.length();
int end = s.indexOf(endToken, start);
String hrefUrl = s.substring(start, end);

L'indirizzo dell'immagine è:

String s0 = "src=\"";
String s1 = "\"";
int start = s.indexOf(s0) + s0.length();
int end = s.indexOf(s1, start);
String srcUrl = s.substring(s0, s1);

A naso. Magari controlla se ci va un +1 o -1 da qualche parte.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 18-04-2011, 22:54   #9
DeAndreon
Senior Member
 
L'Avatar di DeAndreon
 
Iscritto dal: Dec 2008
Messaggi: 975
Si, ho fatto una cosa simile alla tua, sono riuscito ad ottenere l'indirizzo dell'immagine solo che ora non ne vuole sapere di mettersi sullo schermo del simulatore...

In pratica ho fatto così:
Codice:
 int first = resultstring.indexOf("src=");
                   int last = resultstring.indexOf("validate");
                   String sub = resultstring.substring(first+5, last+8);

                   HttpConnection hpc = null;
    DataInputStream dis = null;
    try {
      hpc = (HttpConnection) Connector.open(sub);
      int length = (int) hpc.getLength();
      byte[] data = new byte[length];
      dis = new DataInputStream(hpc.openInputStream());
      dis.readFully(data);
      image = Image.createImage(data, 0, data.length);
    }catch(Exception e){}
     finally {
      if (hpc != null)
                        try {
                            hpc.close();
                        } catch (IOException ex) {
                            ex.printStackTrace();
                        }
      if (dis != null)
                        try {
                            dis.close();
                        } catch (IOException ex) {
                            ex.printStackTrace();
                        }
               }

                 
                }
            }.start();
            i= new ImageItem(null, image, 0, null);
            f.append(i);
In pratica prendo l'indirizzo dell'immagine e lo metto in sub. Poi lo uso con la parte di codice successiva per ottenere l'immagine solo che a quanto pare non funziona e non capisco il perchè...

Grazie mille per il tempo che mi stai dedicando... Piano piano stiamo risolvendo il problema
DeAndreon è offline   Rispondi citando il messaggio o parte di esso
Old 18-04-2011, 23:00   #10
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Ad occhio mi sembra ok. Forse l'immagine è in un formato non supportato? Prova a salvarla su un file (usando Java SE).
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 19-04-2011, 09:16   #11
DeAndreon
Senior Member
 
L'Avatar di DeAndreon
 
Iscritto dal: Dec 2008
Messaggi: 975
Ciao! Buongiorno!
Secondo me il problema è un altro...
Ho aperto il codice che mi viene restituito con il get nel mio browser e si apre la pagina mentre se prendo singolarmente gli url restituiti cioè img o src non si apre niente...
Cosa vuol dire? Che devo visualizzare il codice ottenuto come una pagina web?
Sinceramente mi sta mandando in tilt questa situazione :S
DeAndreon è offline   Rispondi citando il messaggio o parte di esso
Old 19-04-2011, 13:26   #12
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
E' possibile che lo script php a cui puntano i link non restituisca un'immagine nel caso in cui il browser non appartenga ad uno dei noti.

Da un prova a me risulta che l'url dell'immagine restituisce non un'immagine ma una scritta, quando eseguito al di fuori del browser. Se così fosse, allora ti basterebbe presentare a video quella scritta (come se si trattasse di un browser non in grado di visualizzare immagini).

Dovresti provare a contattare l'autore del banner per sapere se questo comportamento rientri nella "visualizzazione di pagine html" indicata nei requisiti.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
I cosmonauti avrebbero riparato tutte le...
Artemis II: la NASA conferma il lancio d...
Il CEO di Embrak Studios difende l'uso d...
Il Trump Phone è sempre più un mistero: ...
OPPO ha svelato la serie Reno 15 "global...
Poste ID diventa a pagamento: l'identità...
7 articoli crollati di prezzo su Amazon ...
Lavatappeti, smacchiatore e Vaporella a ...
Prezzi a picco in 24 ore: due monitor to...
OLED top di gamma LG con super ribasso d...
Il nuovo OnePlus Nord 6 è vicino al debu...
Tesla svela i risultati del Q4: conferma...
Nuova rimodulazione da Fastweb: fino a 3...
La NVIDIA RTX 5090 potrebbe presto costa...
ASUS non produrrà più smar...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:16.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v