FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
HttpClient/examples/SimpleHttpExample/SimpleHttpExample.ino at master · amcewen/HttpClient · GitHub
amcewen
/
HttpClient
Public
Notifications
You must be signed in to change notification settings
Fork
320
Star
344
Code
Issues
23
Pull requests
7
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
HttpClient
/
examples
/
SimpleHttpExample
/
SimpleHttpExample.ino
Copy path
More file actions
More file actions
Latest commit
History
History
History
119 lines (101 loc) · 3.04 KB
Breadcrumbs
HttpClient
/
examples
/
SimpleHttpExample
/
SimpleHttpExample.ino
Copy path
File metadata and controls
119 lines (101 loc) · 3.04 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//
(c) Copyright 2010-2012 MCQN Ltd.
//
Released under Apache License, version 2.0
//
//
Simple example to show how to use the HttpClient library
//
Get's the web page given at http://<kHostname><kPath> and
//
outputs the content to the serial port
#
include
<
SPI.h
>
#
include
<
HttpClient.h
>
#
include
<
Ethernet.h
>
#
include
<
EthernetClient.h
>
//
This example downloads the URL "http://arduino.cc/"
//
Name of the server we want to connect to
const
char
kHostname
[] =
"
arduino.cc
"
;
//
Path to download (this is the bit after the hostname in the URL
//
that you want to download
const
char
kPath
[] =
"
/
"
;
byte mac[] = {
0xDE
,
0xAD
,
0xBE
,
0xEF
,
0xFE
,
0xED
};
//
Number of milliseconds to wait without receiving any data before we give up
const
int
kNetworkTimeout
=
30
*
1000
;
//
Number of milliseconds to wait if no data is available before trying again
const
int
kNetworkDelay
=
1000
;
void
setup
()
{
//
initialize serial communications at 9600 bps:
Serial.
begin
(
9600
);
while
(Ethernet.
begin
(mac) !=
1
)
{
Serial.
println
(
"
Error getting IP address via DHCP, trying again...
"
);
delay
(
15000
);
}
}
void
loop
()
{
int
err =
0
;
EthernetClient c;
HttpClient
http
(c);
err = http.
get
(
kHostname
,
kPath
);
if
(err ==
0
)
{
Serial.
println
(
"
startedRequest ok
"
);
err = http.
responseStatusCode
();
if
(err >=
0
)
{
Serial.
print
(
"
Got status code:
"
);
Serial.
println
(err);
//
Usually you'd check that the response code is 200 or a
//
similar "success" code (200-299) before carrying on,
//
but we'll print out whatever response we get
err = http.
skipResponseHeaders
();
if
(err >=
0
)
{
int
bodyLen = http.
contentLength
();
Serial.
print
(
"
Content length is:
"
);
Serial.
println
(bodyLen);
Serial.
println
();
Serial.
println
(
"
Body returned follows:
"
);
//
Now we've got to the body, so we can print it out
unsigned
long
timeoutStart =
millis
();
char
c;
//
Whilst we haven't timed out & haven't reached the end of the body
while
( (http.
connected
() || http.
available
()) &&
((
millis
() - timeoutStart) <
kNetworkTimeout
) )
{
if
(http.
available
())
{
c = http.
read
();
//
Print out this character
Serial.
print
(c);
bodyLen--;
//
We read something, reset the timeout counter
timeoutStart =
millis
();
}
else
{
//
We haven't got any data, so let's pause to allow some to
//
arrive
delay
(
kNetworkDelay
);
}
}
}
else
{
Serial.
print
(
"
Failed to skip response headers:
"
);
Serial.
println
(err);
}
}
else
{
Serial.
print
(
"
Getting response failed:
"
);
Serial.
println
(err);
}
}
else
{
Serial.
print
(
"
Connect failed:
"
);
Serial.
println
(err);
}
http.
stop
();
//
And just stop, now that we've tried a download
while
(
1
);
}
Back
|
FazBrowse Home
|
New Git URL