2013-07-01 8 views
0

포트 8733에서 수신 대기하는 REST 인터페이스가 있습니다. Fiddler으로 테스트 할 수 있으며 응답합니다.포트 80에 대한 Arduino 이더넷 HTTP 요청

피들러 요청을 복사하여 다음 프로그램을 사용하여 Arduino에 넣었습니다. 실행하면 내 REST 인터페이스가 손상되지 않습니다. 나는 작동하는 다른 PC에서 Fiddler와 함께 요청을 보내려고했습니다. 따라서 방화벽 문제는 없습니다. 나는 또한 Arduino에게 메시지를 보내려고 노력했으며 연결성에 문제가 없다.

이 문제를 어떻게 해결할 수 있습니까?

#include <SPI.h> 
#include <Ethernet.h> 

// Enter a MAC address and IP address for your controller below. 
// The IP address will be dependent on your local network: 
byte mac[] = { 
    0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; 
IPAddress ip(192,168,1,177); 
IPAddress serverIP(192,168,1,39); 
String serverIPString = "192.168.1.39"; 
int serverPort = 8733; 
String ChargepointId = ""; 

// Initialize the Ethernet server library 
// with the IP address and port you want to use 
// (port 80 is default for HTTP): 
EthernetServer server(80); 
boolean isProcessingCommand = false; 
boolean isAvailableForCharging = false; 
boolean isConnected = false; 
String currentCommand = ""; 
String lastJsonMessage = ""; 

void setup() { 
    // Open serial communications and wait for port to open: 
    Serial.begin(9600); 
     while (!Serial) { 
     ; // Wait for serial port to connect. Needed for Leonardo only. 
    } 


    // Start the Ethernet connection and the server: 
    Ethernet.begin(mac, ip); 
    server.begin(); 
    Serial.print("server is at "); 
    Serial.println(Ethernet.localIP()); 
} 

void loop() { 
    EthernetClient client; 
    // If there's a successful connection: 
    Serial.println("connecting..."); 
    if (client.connect(serverIP, 8733)) { 
     if (client.available()) { 
      client.println("PUT http://192.168.1.39:8733/Test_Time_Addresses/WebAPI.Services/ChargepointExternal/AcceptedConnection HTTP/1.1"); 
      client.println("Content-Type: application/json; charset=utf-8"); 
      client.println("Host: 192.168.1.39:8733"); 
      client.println("Content-Length: 56"); 
      client.println("Expect: 100-continue"); 
      client.println("Connection: Keep-Alive"); 
      client.println(""); 
      client.println("{\"ChargepointId\":\"e6bd0980-4c5b-4f76-955c-02a8269f44a9\"}"); 
      client.println(""); 
      delay(1000); 
      Serial.println("DONE"); 
     } 
    } 
    else { 
     // If you couldn't make a connection: 
     Serial.println("connection failed"); 
     Serial.println(); 
     Serial.println("disconnecting."); 
     client.stop(); 
    } 
} 

답변

1

이 줄은 잘못 :

if (client.available()) { 

어쨌든 감사하고 죄송합니다.