Go Down

Topic: Envoi de données sur internet via processing (Read 4017 times) previous topic - next topic

Jean-François

Sep 26, 2009, 11:54 am Last Edit: Sep 26, 2009, 11:55 am by jfs Reason: 1
Bonjour,

Je cherche à envoyer des données lues par mes plaques Arduino sur une page de mon site internet.

J'aimerais utiliser pour cela Processing (si c'est possible), car cela me permettrait de faire une petite interface me permettant de manipuler ces données.

J'aimerais me connecter à une certaine heure tout les jours, à une page déterminée, remplir les champs d'identification et les valider puis commencer le transfert de données, puis finir par fermer la page, tout cela par le biais d'une appli Processing.

J'ai vu qu'il existait la librairie "processing.net".

J'ai fait une essai avec cet exemple :

Code: [Select]
import processing.net.*;
Client myClient;
int dataIn;

void setup() {
 size(200, 200);
 // Connect to the local machine at port 5204.
 // This example will not run if you haven't
 // previously started a server on this port
 myClient = new Client(this, "http://www.processing.org/reference/libraries/net/Client.html", 5204);
}

void draw() {
 if (myClient.available() > 0) {
   dataIn = myClient.read();
 }
 background(dataIn);
}


mais cela ne fonctionne pas, processing me renvoi ces erreurs :

Code: [Select]
java.net.UnknownHostException: http://www.processing.org/reference/libraries/net/Client.html
     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:433)
     at java.net.Socket.connect(Socket.java:524)
     at java.net.Socket.connect(Socket.java:474)
     at java.net.Socket.<init>(Socket.java:371)
     at java.net.Socket.<init>(Socket.java:184)
     at processing.net.Client.<init>(Client.java:60)
     at sketch_sep26a.setup(sketch_sep26a.java:28)
     at processing.core.PApplet.handleDraw(PApplet.java:1383)
     at processing.core.PApplet.run(PApplet.java:1311)
     at java.lang.Thread.run(Thread.java:613)


Est ce que cela peut venir du N[ch730]de port qui ne serait pas le bon ?
Ou est ce que cette librairie n'est pas faite pour cela?
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Luj06

#1
Sep 26, 2009, 07:28 pm Last Edit: Sep 27, 2009, 10:15 am by julien@pobot.org Reason: 1
euh... oui le port est un problème, mais ce n'est pas le seul :)

en fait le client ne fonctionne que s'il y a un serveur de l'autre côté sur le même port. Par "serveur", on entend un programme spécifique jouant le rôle de maitre dans la connexion client/serveur, et pas de "serveur web" en tant que machine hébergeant des fichiers et des programmes.

donc deux choix s'offrent à toi :

- tu as un serveur (machine) sur lequel tu peux faire fonctionner des programmes java : donc tu peux écrire un serveur (programme) également en Processing

- tu as un serveur (machine) qui ne fait que de l'hébergement : dans ce cas il faut chercher quel type de langage de programmation t'est autorisé. Ensuite il faudra écrire une page dynamique (exemple : php).

Ce serait moi, je connecterai mon Arduino directement sur ma box internet, avec un shield Ethernet qui envoit des données à Pachube (un serveur machine/programme indépendant), puis je fais une page sur mon propre serveur qui va chercher sur Pachube les différentes valeurs et les affiche.

Cela fait un circuit avec un serveur en + mais je n'utiliserais que des briques déjà existantes.


Jean-François

Ok.... merci pour ces éclaircissements, je vais voir comment faire avec ces deux solutions.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Bonsoir Jean-François.
Pour ma part, je fais un peu comme de Luj06.
Mon arduino se connecte au serveur apache via un shield ethernet.
Il fait une requete sur une page "toto.php" en passant des paramètres (?nom_de_variable;sa_valeur).
Dans toto.php, le script va mettre à jour la base de données MySQL en fonction des paramètres passés dans l'URL. C'est simple et direct. En réponse, arduino peut recevoir des données du serveur (confirmation de bonne exécution par ex)
Et ça marche, mais sans utiliser processing...  :-/
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

Luj06

Tout à fait, c'est une très bonne solution. C'est comme ça que je ferais, en récupérant des exemples de php et de sql, car il est désormais simple et peu onéreux de trouver un hébergement php/mysql.

Mais je comprends aussi qu'on recherche une solution à base de fichiers. Donc voici un article décrivant comment écrire un petit programme php (appelé par l'Arduino ou par Processing) qui écrit directement dans un fichier. Il faut ensuite transformer la page html qui devait afficher les données en une page php (mais le contenu reste le même) en ajoutant à l'endroit où on veut afficher le résultat le code php de lecture du fichier précédemment créé.

Pour l'instant on est en pleins préparatifs de la Fête de la Science (novembre) donc je suis pas trop dispo pour commencer un nouveau projet développant ces propositions, mais si vous voulez le faire pour les prochains, vous pouvez publier un article sur notre site web et je vous aiderai pour le code et pour les tests (hébergement php).

Jean-François

J'ai justement un hébergement avec php/mysql, je ferai des essai et transmettrai mes expériences.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François

#6
Oct 07, 2009, 08:20 pm Last Edit: Oct 07, 2009, 08:26 pm by jfs Reason: 1
Après quelques essais, j'arrive à lire les données HTML sur une page web (code source).

Code: [Select]


import processing.net.*;
Client myClient;
int dataIn;

void setup() {
 size(200, 200);


String lines[] = loadStrings("http://www.arduino.cc");
println("there are " + lines.length + " lines");
for (int i=0; i < lines.length; i++) {
 println(lines[i]);
}}


Voici un extrait ce que je lis dans la console :

Code: [Select]










there are 175 lines
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 <title>Arduino - HomePage </title>
 <link rel='stylesheet' href='http://arduino.cc/en/pub/skins/arduino/arduino.css' type='text/css' />
 <meta name="verify-v1" content="TtxFIEJAB6zdJ509wLxjnapQzKAMNm9u0Wj4ho6wxIY=" />
</head>
<body>
<div id="page">
<!--PageHeaderFmt-->
<div id="pageheader">
 <div class="title"><a href="/">Arduino</a></div>
 <div class="search">
   <!-- SiteSearch Google -->
   <FORM method=GET action="http://www.google.com/search">
   <input type=hidden name=ie value=UTF-8>
   <input type=hidden name=oe value=UTF-8>
   <INPUT TYPE=text name=q size=25 maxlength=255 value="">
   <INPUT type=submit name=btnG VALUE="search">
   <input type=hidden name=domains value="http://www.arduino.cc/">
   <input type=hidden name=sitesearch value="http://www.arduino.cc/">
   </FORM>
   <!-- SiteSearch Google -->
 </div>
</div>
<!--/PageHeaderFmt-->
<!--PageLeftFmt-->
<div id="pagenav" style="text-align: right">
 <div style="float: left;">
 <p><a class='wikilink' href='http://arduino.cc/en/Main/Buy'>Buy</a>
|
<a class='wikilink' href='http://arduino.cc/en/Main/Software'>Download</a>
|
<a class='wikilink' href='http://arduino.cc/en/Guide/HomePage'>Getting Started</a>
|
<a class='wikilink' href='http://arduino.cc/en/Tutorial/HomePage'>Learning</a>
|
<a class='wikilink' href='http://arduino.cc/en/Reference/HomePage'>Reference</a>
|
<a class='wikilink' href='http://arduino.cc/en/Main/Hardware'>Hardware</a>
|
<a class='wikilink' href='http://arduino.cc/en/Main/FAQ'>FAQ</a>
</p>
<p class='vspace'></p>

 </div>
 <a class="urllink" href="http://www.arduino.cc/blog/" rel="nofollow">Blog &raquo;</a> |
 <a class="urllink" href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl" rel="nofollow">Forum &raquo;</a> |
 <a class="urllink" href="http://www.arduino.cc/playground/" rel="nofollow">Playground &raquo;</a>
</div>
<!--/PageLeftFmt-->
<div id="pagetext">
<!--PageText-->
<div id='wikitext'>
<table  width='100%' border='0' cellpadding='0' cellspacing='0'><tr><td  width='48%' valign='top'>
<p class='vspace'></p><div><img src='http://arduino.cc/en/uploads/Main/arduino316.jpg' alt='' title='' /></div>
<p class='vspace'></p><p><em>Photo by Nicholas Zambetti</em>
</p>
<p class='vspace'></p><p><br clear='all' />
</p>
<p class='vspace'></p><h3>Arduino News (<a class='wikilink' href='http://arduino.cc/en/Main/News'>archive</a>)</h3>
<p>2009.08.12 Arduino 0017 available from the <a class='wikilink' href='http://arduino.cc/en/Main/Software'>download page</a>.
</p>
<p class='vspace'></p><p>2009.06.17 <span  style='color: red;'> Can't run Arduino after updating Java on your Mac? </span> See the <a class='wikilink' href='http://arduino.cc/en/Guide/Troubleshooting#macupdate'>solution in the troubleshooting guide</a>.
</p>
<p class='vspace'></p><p>2009.06.04 Arduino 0016 for Windows, Mac OS X, and Linux available from the <a class='wikilink' href='http://arduino.cc/en/Main/Software'>software</a> page.
</p>
<p class='vspace'></p><p>2009.03.26 <a class='wikilink' href='http://arduino.cc/en/Main/ArduinoBoardMega'>Arduino Mega</a> released.  <a class='wikilink' href='http://arduino.cc/en/Main/Software'>Download</a> the new Arduino 0015 software to use it.
</p>
<p class='vspace'></p><p>2009.03.11 Arduino 0014 for Windows and Mac OS X available from the <a class='wikilink' href='http://arduino.cc/en/Main/Software'>software</a> page.  This is a minor bug fix release.
</p>
<p class='vspace'></p><p>2009.02.07 Uploaded a slightly updated version of <a class='urllink' href='http://arduino.googlecode.com/files/arduino-0013-linux2.tgz' rel='nofollow'>Arduino 0013 for Linux (32 bit)</a>.
</p>
<p class='vspace'></p><p>2009.02.06 Arduino 0013 is now available (<a class='wikilink' href='http://arduino.cc/en/Main/ReleaseNotes'>release notes</a>): <a class='urllink' href='http://arduino.googlecode.com/files/arduino-0013-win.zip' rel='nofollow'>Windows</a>,  <a class='urllink' href='http://arduino.googlecode.com/files/arduino-0013-mac.zip' rel='nofollow'>Mac OS X</a>, <a class='urllink' href='http://arduino.googlecode.com/files/arduino-0013-linux2.tgz' rel='nofollow'>Linux (32bit)</a>.
</p>
<p class='vspace'></p><p>2008.12.23 The Arduino software is now available for <a class='urllink' href='http://code.google.com/p/arduino/downloads/list' rel='nofollow'>download from Google Code</a>.  If you have any problems, please <a class='urllink' href='http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=swtrouble' rel='nofollow'>let us know</a>.
</p>
<p class='vspace'></p><p>2008.10.24 Arduino 0012 for Linux AMD 64bit available for download: <a class='urllink' href='http://www.arduino.cc/files/arduino-0012-linux-amd64.tgz' rel='nofollow'>arduino-0012-linux-amd64.tgz</a>
</p>
<p class='vspace'></p><p>2008.10.19 Announcing the <a class='wikilink' href='http://arduino.cc/en/Main/ArduinoBoardDuemilanove'>Arduino Duemilanove</a>, the latest and easiest-to-use version of the basic Arduino USB board.
</p>
<p class='vspace'></p><p>2008.10.12 Arduino 0012 for Linux 32bit available: <a class='urllink' href='http://www.arduino.cc/files/arduino-0012-linux.tgz' rel='nofollow'>arduino-0012-linux.tgz</a>
</p>
<p class='vspace'></p><p>2008.09.18 Arduino 0012 available (<a class='wikilink' href='http://arduino.cc/en/Main/ReleaseNotes'>release notes</a>): <a class='urllink' href='http://www.arduino.cc/files/arduino-0012-win.zip' rel='nofollow'>Windows</a>, <a class='urllink' href='http://www.arduino.cc/files/arduino-0012-mac.zip' rel='nofollow'>Mac OS X</a>.  Linux version coming soon.
</p>
<p class='vspace'></p><p><span  style='color: red;'>2008.09.16 New Arduino Server!!</span><span  style='color: red;'> Faster, Better, and already breaking the records ... read about it on our <a style='color: red' class='urllink' href='http://arduino.cc/blog/?p=74' rel='nofollow'>blog</a></span>
</p>
<p class='vspace'></p><p>2008.09.03 Arduino.cc on the move!! During the next week we will migrate all our online services to a new and better server, we apologize for eventual cuts while in the process.
</p>
<p class='vspace'></p><p>2008.07.11 New distributors: <a class='urllink' href='http://www.robotev.com/index.php?cPath=21' rel='nofollow'>Robotev</a> in Bulgaria and <a class='urllink' href='http://www.linuxcenter.ru/shop/embedded/' rel='nofollow'>Linux Center</a> in Russia.  Full list on the <a class='wikilink' href='http://arduino.cc/en/Main/Buy'>buy</a> page.
</p>
<p class='vspace'></p><p>2008.05.17 New Hardware: <a class='urllink' href='http://www.arduino.cc/blog/?p=39' rel='nofollow'>Arduino Nano</a> available for pre-order, by <a class='urllink' href='http://store.gravitech.us/' rel='nofollow'>Gravitech</a>.  Shipping June 16.
</p>
<p class='vspace'></p><p>2008.04.29 Check out: <a class='urllink' href='http://www.mecharoboshop.com/Products/physicalcomputing/arduino/' rel='nofollow'>Mecharoboshop</a>, our latest distributor in Japan
</p>
<p class='vspace'></p><p>2008.04.14 <a class='urllink' href='http://www.plughouse.co.kr' rel='nofollow'>Plughouse</a> becomes the first Arduino distributor in South Korea
</p>
<p class='vspace'></p><p>2008.03.28 Arduino 0011 now available (<a class='wikilink' href='http://arduino.cc/en/Main/ReleaseNotes'>release notes</a>): <a class='urllink' href='http://www.arduino.cc/files/arduino-0011-mac.zip' rel='nofollow'>Mac OS X</a>, <a class='urllink' href='http://www.arduino.cc/files/arduino-0011-win.zip' rel='nofollow'>Windows</a>, <a class='urllink' href='http://www.arduino.cc/files/arduino-0011-linux.tgz' rel='nofollow'>Linux</a>.
</p>
<p class='vspace'></p><p><br clear='all' />
</p>
<p class='vspace'></p><h3>Workshops (<a class='wikilink' href='http://arduino.cc/en/Main/Workshops'>archive</a>)</h3>
<p>28 and 29 March, 2009 <a class='urllink' href='http://www.tinker.it/it/now/2009/03/10/workshop-arduino-a-milano-28-e-29-marzo/' rel='nofollow'>Workshop su Arduino</a> a Milano, Italia
</p>
<p class='vspace'></p><p>7 March, 2009 <a class='urllink' href='http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1234645199' rel='nofollow'>Flash and Physical Computing</a> in Boston, US
</p>
<p class='vspace'></p><p>5-6 March, 2009 <a class='urllink' href='http://blushingboy.org/content/16kb-sound' rel='nofollow'>16KB of Sound</a> by <span class='wikiword'>BlushingBoy</span> at Arteleku, Spain
</p>
<p class='vspace'></p><p>22 February, 2009 <a class='urllink' href='http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1234325654' rel='nofollow'>Arduino class</a> at the <span class='wikiword'>TechShop</span>, San Francisco, US
</p>
<p class='vspace'></p><p>21 February, 2009 <a class='urllink' href='http://thehacktory.org/classes/arduino-beginner-microcontroller-amp-electronics-class' rel='nofollow'>Arduino starting class</a> at the Hacktory, Philly, US
(...)


:) C'est cool...
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François

Je lis des données sur un site de cette façon :

Code: [Select]
byte lines[] = loadBytes("http://www.lurloujelismesdonnees");

J'ai un petit problème, si le serveur est indisponible durant une lecture, ça me plante mon sketch.

J'aimerais faire une validation de la connection qui me permettait ensuite de continuer le traitement des données entrantes si il y en a et qui me mettrait en attente lorsque rien ne rentre.

Je pensais faire un code genre :
Code: [Select]
if(loadBytes()<0){}

Mais ça ne fonctionne pas, si quelqu'un pouvait m'indiquer une piste pour faire ça
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François

#8
Oct 14, 2009, 09:03 am Last Edit: Oct 14, 2009, 09:15 am by jfs Reason: 1
J'ai fait ce code pour controler ma connection, ça fonctionne plus longtemps que si ce controle n'était pas là, mais ça plante au bout d'un moment et jamais après le même nombre de demande url.
Code: [Select]
for(int i=0;i<Heure;i++){
           if(loadBytes("http://www.LURLOUJELISMESDONNEES+i")== null){
             println(loadBytes("http://www.LURLOUJELISMESDONNEES+i"));
             delay(5000);
           }
           else {
              byte lines[] = loadBytes("http://www.LURLOUJELISMESDONNEES+i");

             println("there are " + lines.length + " lines");

...



Voici le message d'erreur qui m'est renvoyé:

Code: [Select]

java.net.ConnectException: Connection refused
     at java.net.PlainSocketImpl.socketConnect(Native Method)
     at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
     at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
     at java.net.Socket.connect(Socket.java:524)
     at java.net.Socket.connect(Socket.java:474)
     at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
     at sun.net.www.http.HttpClient.openServer(HttpClient.java:388)
     at sun.net.www.http.HttpClient.openServer(HttpClient.java:523)
     at sun.net.www.http.HttpClient.<init>(HttpClient.java:231)
     at sun.net.www.http.HttpClient.New(HttpClient.java:304)
     at sun.net.www.http.HttpClient.New(HttpClient.java:321)
     at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:839)
     at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:791)
     at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:716)
     at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:960)
     at java.net.URL.openStream(URL.java:1007)
     at processing.core.PApplet.createInputRaw(PApplet.java:4001)
     at processing.core.PApplet.createInput(PApplet.java:3970)
     at processing.core.PApplet.loadBytes(PApplet.java:4144)
     at scann.draw(scann.java:133)
     at processing.core.PApplet.handleDraw(PApplet.java:1425)
     at processing.core.PApplet.run(PApplet.java:1327)
     at java.lang.Thread.run(Thread.java:613)
The file "http://www.LURLOUJELISMESDONNEES" is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.
Exception in thread "Animation Thread" java.lang.NullPointerException
     at scann.draw(scann.java:135)
     at processing.core.PApplet.handleDraw(PApplet.java:1425)
     at processing.core.PApplet.run(PApplet.java:1327)
     at java.lang.Thread.run(Thread.java:613)


Et cette ligne est soulignée avec un "NullPointerException" :

Code: [Select]
println("there are " + lines.length + " lines");

Comment est ce que je peux éviter ce plantage ?
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

fdufnews

Tu pourrais très bien te monter le serveur sur ta machine en local (donc en principe toujours disponible) au lieu d'aller chercher à l'extérieur sur internet.

Il y a des installations simple est complète sous windows avec Apache, PHP et MySQL
EasyPHP http://www.easyphp.org/
ZazouMiniWebServerhttp://www.zmws.com/

Jean-François

Ce qui est intéressant en allant sur des serveurs "extérieurs" c'est de pouvoir obtenir des infos que l'on arrive pas à obtenir en local.... comme des données météo par exemple.

Je pense avoir trouver le problème qui me provoquait ce plantage, mais pour l'instant je teste et ça n'a jamais tenu aussi longtemps  :)
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François

En utilisant la fonction createReader() le contrôle de la connection devrait être plus fiable.... et plus rapide :

Code: [Select]
      

BufferedReader reader;
String line;

void setup() {
 // Open the file from the createWriter() example

}

void draw() {
  reader = createReader("MonUrl....");

 if (reader == null) {
   // Nothing left in the file, stop reading.
 print(reader);
 delay(1000);
 } else {
     try {
   line = reader.readLine();
 } catch (IOException e) {
   e.printStackTrace();
   reader = null;
 }
   print (line);
   delay(500);
 }
}
         
        //  byte lines[] = loadBytes("http://www.monopolycitystreets.com/buy/getstreetstobuy?lat=557000000&lng=376000000");
             

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François

#12
Nov 24, 2010, 11:53 am Last Edit: Nov 24, 2010, 11:54 am by jfs Reason: 1
Je reprends le fil de ce sujet.

Je suis maintenant sur un projet qui utilise les mêmes fonction décrites plus haut et j'ai toujours ce problème lors d'une connection qui n'aboutit pas, cette ligne me fige le processus et je doit tout relancer :

Code: [Select]
line = reader.readLine();


Est ce que quelqu'un saurait comment mettre une sorte de TimeOut en rapport avec cette ligne ?
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Jean-François

#13
Nov 24, 2010, 11:14 pm Last Edit: Nov 24, 2010, 11:15 pm by jfs Reason: 1
La solution est là :

http://www.devdaily.com/blog/post/java/how-open-url-read-contents-httpurl-connection-java

J'ai pas eu à faire grand chose pour que ça tourne sur Processing :

Code: [Select]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

/**
*
* A complete Java class that shows how to open a URL, then read data (text) from that URL,
* HttpURLConnection class (in combination with an InputStreamReader and BufferedReader).
*
* @author alvin alexander, devdaily.com.
*
*/
void draw(){
   try
   {
     String myUrl = "http://lesiteoujenvoimesrequetes.com";
     // if your url can contain weird characters you will want to
     // encode it here, something like this:
     // myUrl = URLEncoder.encode(myUrl, "UTF-8");

     String results = doHttpUrlConnectionAction(myUrl);
     System.out.println(results);
   }
   catch (Exception e)
   {
     // deal with the exception in your "controller"
   }
 }

 /**
  * Returns the output from the given URL.
  *
  * I tried to hide some of the ugliness of the exception-handling
  * in this method, and just return a high level Exception from here.
  * Modify this behavior as desired.
  *
  * @param desiredUrl
  * @return
  * @throws Exception
  */
 private String doHttpUrlConnectionAction(String desiredUrl)
 throws Exception
 {
   URL url = null;
   BufferedReader reader = null;
   StringBuilder stringBuilder;

   try
   {
     // create the HttpURLConnection
     url = new URL(desiredUrl);
     HttpURLConnection connection = (HttpURLConnection) url.openConnection();
     
     // just want to do an HTTP GET here
     connection.setRequestMethod("GET");
     
     // uncomment this if you want to write output to this url
     //connection.setDoOutput(true);
     
     // give it 15 seconds to respond
     connection.setReadTimeout(5*1000);
     connection.connect();

     // read the output from the server
     reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
     stringBuilder = new StringBuilder();

     String line = null;
     while ((line = reader.readLine()) != null)
     {
       stringBuilder.append(line + "\n");
     }
     return stringBuilder.toString();
   }
   catch (Exception e)
   {
     //e.printStackTrace();
           println("url not found");
     throw e;

   }
   finally
   {
     // close the reader; this can throw an exception too, so
     // wrap it in another try/catch block.
     if (reader != null)
     {
       try
       {
         reader.close();
       }
       catch (IOException ioe)
       {
         ioe.printStackTrace();
         
       }
     }
   }
 }



et ça fonctionne du tonnerre  :D
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Hexa Emails

désolé de remonter un peu ce sujet, mais tu script final permet de lire le code source d'un site internet, et ton sujet parle d'envoyer des données? Je suis intéressé par les 2 donc ça me plait :)
Y a t il un moyen d'utiliser processing pour éditer une sorte de blog (je dis blog car au moins on a une adresse fixe et gratuitement/simplement).
Je suppose que ça doit énormément dépendre du site/blog concerné!
Enfin voilà je ne sais même pas si je cherche dans le bon sens, le but serai d'envoyer des données d'un sketch processing à un autre, sans avoir recours à des adressages IP dynamique et autres joyeusetés payantes et/ou en dehors de mes compétences.
J'apprends tous les jours!

Go Up