2

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?

  • 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 github.com/jandrassy/… – Juraj Feb 18 '18 at 16:25
-1

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

  • 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.