EtherCardライブラリでHTTPリクエストを作成しようとしていて、完全な応答を得ようとしています。例のコードを使用すると、ヘッダーをキャプチャすることしかできず、突然切断されます。問題は、データを格納するのに十分な大きさのバッファを作成することはできませんが、データは切り捨てられることになります。しかしそれはわずか292バイトです。ここでデータを適合させるためにバッファを調整できません
は、私はサンプルコードが何をしているのか理解しようと尋ねた別の質問である:ここではWhat is happening in this C/Arduino code?
私が取得しようとしているデータです:http://jsonplaceholder.typicode.com/posts/1
String response;
byte Ethernet::buffer[800]; // if i raise this to 1000, response will be blank
static void response_handler (byte status, word off, word len) {
Serial.println("Response:");
Ethernet::buffer[off + 400] = 0; // if i raise 400 much higher, response will be blank
response = String((char*) Ethernet::buffer + off);
Serial.println(response);
}
は何のために上記のコメントを参照してください。私は試みました。ここで
は、上記のコードから出力された:あなたが見ることができるように
Response:
HTTP/1.1 404 Not Found
Date: Fri, 20 Jan 2017 12:15:19 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 2
Connection: close
Set-Cookie: __cfduid=d9714bd94284b999ceb0e87bc91705d501484914519; expires=Sat, 20-Jan-18 12:15:19 GMT; path=/; domain=.typicode.com; HttpOnly
X-Powered-By: Express
Vary: Origin, Accept-Encoding
Access-Control-Allow-Credentials: true
Cache-Control: no
、それは完全なデータ、ヘッダの一部だけではありません。
'String((char *)Ethernet :: buffer + off)'は間違っています私はあなたが 'String((char *)Ethernet :: buffer)'ではないと確信していますか? – NathanOliver
エラー404が戻ってきて、内容は2バイト( 'Content-Length:2')です。 sometをやっているそれ以外は間違っています。 –
あなたは症状を誤解しています - それは内容全体であり、あなたの要求は間違っています。 HTTPヘッダーとエラーコードを紹介してください。 – molbdnilo