3

I currently have a working REST client on my arduino, but the requests always go to port 80, how do I make it send the request to a specific port?

This is my current code: /* File: RestClient.ino This example makes an HTTP request after 10 seconds and shows the result both in serial monitor and in the wifi console of the Arduino Uno WiFi.

Note: works only with Arduino Uno WiFi Developer Edition.

http://www.arduino.org/learning/tutorials/boards-tutorials/restserver-and-restclient

#include <Wire.h>
#include <UnoWiFiDevEd.h>

void setup() {

    const char* connector = "rest";
    const char* server = "download.arduino.org";
    const char* method = "GET";
    const char* resource = "/latest.txt";

    Serial.begin(9600);
    Ciao.begin();

    pinMode(2, INPUT);

    delay(10000);
    doRequest(connector, server, resource, method);
}

void loop() {

}

void doRequest(const char* conn, const char* server, const char* command, const char* method){
    CiaoData data = Ciao.write(conn, server, command, method);
    if (!data.isEmpty()){
        Ciao.println( "State: " + String (data.get(1)) );
        Ciao.println( "Response: " + String (data.get(2)) );
        Serial.println( "State: " + String (data.get(1)) );
        Serial.println( "Response: " + String (data.get(2)) );
    }
    else{
        Ciao.println ("Write Error");
        Serial.println ("Write Error");
    }
}

If I add for example :8080 to the end of the server variable, it does not work.

So how do I make that request go to a specific port?

Juraj
  • 17,050
  • 4
  • 27
  • 43
Mason
  • 215
  • 2
  • 10
  • 1
    Chances are you can't unless 'Ciao' allows you to. Have a look a PAT, port forwarding or proxy servers. Depending on you topology one of those may be able to help. – Code Gorilla Mar 23 '17 at 13:05
  • change the firmware to WiFi Link https://github.com/jandrassy/UnoWiFiDevEdSerial1#uno-wifi-with-wifi-link-firmware – Juraj Feb 18 '18 at 16:25

1 Answers1

0

You can find a portdefinition on your arduino in this path:

/usr/lib/python2.7/ciao/connectors/restserver/restserver.json.conf

{
 "name" : "restserver",
 "description" : "REST server connector for the Ciao Core",
 "authors": ["Arduino Team <swdev@arduino.org>;"],
 "repository" : "https://github.com/arduino-org/Ciao",
 "version" : "0.0.2",
 "params" : {
            "port" : 80
             },
 "log" : {
         "level" : "info"
         }
}

The confusing part is that your Arduino has a server client connection on it self from the cpu/linino server to the mcu/arduino client.

https://www.arduino.cc/en/Reference/CiaoRestServer

novski
  • 121
  • 5
  • 1
    OP has Uno WiFi, not Yun. The library UnoWiFiDevEd has a ciao-like object but the WiFi is served by esp8266 – Juraj Feb 18 '18 at 16:24