Falsche Antwort beim httpClient Beispiel

Hallo Former,

ich bin dabei mit dem Yun einige Beispiele zu versuchen.
Ich habe mir das Beispiel "httpClient" angeschaut und auf den yun geladen.
Wenn ich nun das Beispiel laufen lassen erhalte ich folgende Antwort im Serial Monitor.

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.4.2</center>
</body>
</html>

Hier hätte ich eigentlich folgende Antwort erwartet:

           `:;;;,`                      .:;;:.           
        .;;;;;;;;;;;`                :;;;;;;;;;;:     TM 
      `;;;;;;;;;;;;;;;`            :;;;;;;;;;;;;;;;      
     :;;;;;;;;;;;;;;;;;;         `;;;;;;;;;;;;;;;;;;     
    ;;;;;;;;;;;;;;;;;;;;;       .;;;;;;;;;;;;;;;;;;;;    
   ;;;;;;;;:`   `;;;;;;;;;     ,;;;;;;;;.`   .;;;;;;;;   
  .;;;;;;,         :;;;;;;;   .;;;;;;;          ;;;;;;;  
  ;;;;;;             ;;;;;;;  ;;;;;;,            ;;;;;;. 
 ,;;;;;               ;;;;;;.;;;;;;`              ;;;;;; 
 ;;;;;.                ;;;;;;;;;;;`      ```       ;;;;;`
 ;;;;;                  ;;;;;;;;;,       ;;;       .;;;;;
`;;;;:                  `;;;;;;;;        ;;;        ;;;;;
,;;;;`    `,,,,,,,,      ;;;;;;;      .,,;;;,,,     ;;;;;
:;;;;`    .;;;;;;;;       ;;;;;,      :;;;;;;;;     ;;;;;
:;;;;`    .;;;;;;;;      `;;;;;;      :;;;;;;;;     ;;;;;
.;;;;.                   ;;;;;;;.        ;;;        ;;;;;
 ;;;;;                  ;;;;;;;;;        ;;;        ;;;;;
 ;;;;;                 .;;;;;;;;;;       ;;;       ;;;;;,
 ;;;;;;               `;;;;;;;;;;;;                ;;;;; 
 `;;;;;,             .;;;;;; ;;;;;;;              ;;;;;; 
  ;;;;;;:           :;;;;;;.  ;;;;;;;            ;;;;;;  
   ;;;;;;;`       .;;;;;;;,    ;;;;;;;;        ;;;;;;;:  
    ;;;;;;;;;:,:;;;;;;;;;:      ;;;;;;;;;;:,;;;;;;;;;;   
    `;;;;;;;;;;;;;;;;;;;.        ;;;;;;;;;;;;;;;;;;;;    
      ;;;;;;;;;;;;;;;;;           :;;;;;;;;;;;;;;;;:     
       ,;;;;;;;;;;;;;,              ;;;;;;;;;;;;;;       
         .;;;;;;;;;`                  ,;;;;;;;;:         
                                                         
                                                         
                                                         
                                                         
    ;;;   ;;;;;`  ;;;;:  .;;  ;; ,;;;;;, ;;. `;,  ;;;;   
    ;;;   ;;:;;;  ;;;;;; .;;  ;; ,;;;;;: ;;; `;, ;;;:;;  
   ,;:;   ;;  ;;  ;;  ;; .;;  ;;   ,;,   ;;;,`;, ;;  ;;  
   ;; ;:  ;;  ;;  ;;  ;; .;;  ;;   ,;,   ;;;;`;, ;;  ;;. 
   ;: ;;  ;;;;;:  ;;  ;; .;;  ;;   ,;,   ;;`;;;, ;;  ;;` 
  ,;;;;;  ;;`;;   ;;  ;; .;;  ;;   ,;,   ;; ;;;, ;;  ;;  
  ;;  ,;, ;; .;;  ;;;;;:  ;;;;;: ,;;;;;: ;;  ;;, ;;;;;;  
  ;;   ;; ;;  ;;` ;;;;.   `;;;:  ,;;;;;, ;;  ;;,  ;;;;

Ich kann mir nicht erklären warum ich ein 301 erhalte. Ich habe auch dies versucht "http://textfiles.com/art/bobface.txt" was bis zur hälfte eingelesen wird.

Ist dies ein Problem von curl?

Vielleicht hat mir da jemand einen Hinweis wo ich weiter suchen kann.

Danke

Der Server sendet einen Status 301.
Einen "Location Header"

Warum er das tut?
KA!

mysource:
Vielleicht hat mir da jemand einen Hinweis wo ich weiter suchen kann.

Mit dem Yun und WRT kenne ich mich nicht aus.

Welcher Web-Server (httpd) wird denn benutzt? Gibt es Logfiles, in denen etwas Interessantes steht?

Gruß

Gregor

Nachtrag: Ich sehe gerade, dass Du von Client und curl schreibst. Kannst Du das Abrufen mit wget testen? Welchen URL benutzt das httpClient-Beispiel?

hmm welcher web-Server installiert ist, habe ich noch nicht geprüft. OpenWRT ist drauf. Mal schauen ob ich per arduino.local was heraus bekomme.

nginx/1.4.2

Steht doch da...

das ist doch die Response..

mysource:
das ist doch die Response..

Genau, die kommt doch vom Server!

Welcher andere Server soll da noch im Spiel sein?

nun das ist doch ein curl aufruf an den webserver "http://www.arduino.cc" also derjenige von arduino.cc und nicht der eigene.
Der Aufruf im Beispiel geht ja an http://www.arduino.cc/asciilogo.txt

ich habe nun anstelle von process es mit httpClient gemacht, und da erhalte ich nun die erwartete Antwort.

Gerne möchte ich mir den Dienst von http://transport.opendata.ch zu nutze machen, und habe da via webbrowser ein paar urls zusammen gebaut die sauber funktionieren.

per Arduino funktionieren aber nicht alle:
was geht:
http://transport.opendata.ch/v1/locations?query=bern

was nicht geht:
http://transport.opendata.ch/v1/stationboard?station=bern

mir ist aber nicht klar warum der eine geht aber der andere nicht. Beide funktionieren via web wie auch per cli auf dem Rechner, somit ist der Syntax korrekt.

mysource:
nun das ist doch ein curl aufruf an den webserver "http://www.arduino.cc" also derjenige von arduino.cc und nicht der eigene.
Der Aufruf im Beispiel geht ja an http://www.arduino.cc/asciilogo.txt

Ja dann...
Woher soll man das auch wissen.....

Übrigens:
Wenn ich einen Request auf http://www.arduino.cc/asciilogo.txt mache, erhalte ich folgende Header:

Request Method:GET
Status Code:301 Moved Permanently
Remote Address:174.129.236.194:80

Und der Arduino Server ist ein nginx/1.4.2
Auch das findest du in den Headern.

TIPP:
cURL hat eine Option, welche irgendwie so heißt: FOLLOWLOCATION
Was die wohl bewirken mag....

Tante Google sagt dazu:

If you want CURL to redirect automatically to the new URL then you need to use the -L option

Übrigens:
Wenn ich einen Request auf http://www.arduino.cc/asciilogo.txt mache, erhalte ich folgende Header:
Quote

Request Method:GET
Status Code:301 Moved Permanently
Remote Address:174.129.236.194:80

Und der Arduino Server ist ein nginx/1.4.2
Auch das findest du in den Headern.

hmm habe ich das nicht gerade erwähnt.
wie auch immer danke für deinen Hinweis.

hmm habe ich das nicht gerade erwähnt.

Nein!
Solche Kleinigkeiten werden gerne als unwichtig angesehen...
Wenn du es als wichtig wahrgenommen hättest, wärst du vielleicht von selber drauf gekommen.

Naja, jetzt ist auf jeden Fall klar, dass

Ist dies ein Problem von curl?

mit nein zu beantworten ist.