Skip to content

Commit a533fe0

Browse files
committed
Debugging request body transfer
1 parent 9f3c81b commit a533fe0

File tree

1 file changed

+29
-15
lines changed

1 file changed

+29
-15
lines changed

drivers/zte8810ft.go

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,16 @@ func (m *zte8810ft) getBaseURL(path string) *url.URL {
6767
return &url.URL{Scheme: "http", Host: m.config.GetString("host"), Path: path}
6868
}
6969

70-
func (m *zte8810ft) getNewRequest(method string, url *url.URL, headers http.Header) *http.Request {
70+
func (m *zte8810ft) getNewRequest(method string, url *url.URL, headers http.Header, body io.Reader) (req *http.Request, err error) {
7171
headers.Add("Referer", fmt.Sprintf("http://%s/index.html", m.config.GetString("host")))
7272

73-
return &http.Request{
74-
Proto: "HTTP/1.1",
75-
Method: method,
76-
URL: url,
77-
Header: headers,
73+
req, err = http.NewRequest(method, url.String(), body)
74+
if err != nil {
75+
return nil, err
7876
}
77+
78+
req.Header = headers
79+
return
7980
}
8081

8182
func (m *zte8810ft) GetModel() string {
@@ -88,8 +89,12 @@ func (m *zte8810ft) ConnectCell() error {
8889
query := u.Query()
8990
query.Add("goformId", "CONNECT_NETWORK")
9091
u.RawQuery = query.Encode()
91-
request := m.getNewRequest("GET", u, http.Header{})
9292

93+
// Create request
94+
request, err := m.getNewRequest("GET", u, http.Header{}, strings.NewReader(""))
95+
if err != nil {
96+
return ActionError{Action: "connect", Err: err}
97+
}
9398
m.logger.Debug("request", request.URL.String(), nil)
9499

95100
resp, err := m.httpClient.Do(request)
@@ -128,7 +133,12 @@ func (m *zte8810ft) DisconnectCell() error {
128133
query := u.Query()
129134
query.Add("goformId", "DISCONNECT_NETWORK")
130135
u.RawQuery = query.Encode()
131-
request := m.getNewRequest("GET", u, http.Header{})
136+
137+
// Create request
138+
request, err := m.getNewRequest("GET", u, http.Header{}, strings.NewReader(""))
139+
if err != nil {
140+
return ActionError{Action: "disconnect", Err: err}
141+
}
132142

133143
m.logger.Debug("request", request.URL.String(), nil)
134144

@@ -172,8 +182,10 @@ func (m *zte8810ft) GetCellConnStatus() (*LinkStatus, error) {
172182
query.Add("_", strconv.FormatInt((time.Now().UnixMilli)(), 10))
173183
u.RawQuery = query.Encode()
174184

175-
request := m.getNewRequest("GET", u, http.Header{})
176-
185+
request, err := m.getNewRequest("GET", u, http.Header{}, strings.NewReader(""))
186+
if err != nil {
187+
return nil, ActionError{Action: "status", Err: err}
188+
}
177189
m.logger.Debug("request", request.URL.String(), nil)
178190

179191
resp, err := m.httpClient.Do(request)
@@ -250,18 +262,20 @@ func (m *zte8810ft) SendSMS(phone string, message string) error {
250262
query.Add("sms_time", t.Format("06;01;02;15;04;05;")+strconv.Itoa(tz/3600))
251263
}
252264

253-
request := m.getNewRequest("POST", u, http.Header{
254-
"Content-Type": {"application/x-www-form-urlencoded", "charset=UTF-8"}})
255-
256265
// Some Go-level string manipulation
257266
encoded := query.Encode()
258267
stringReader := strings.NewReader(encoded)
259-
stringReadCloser := io.NopCloser(stringReader)
260-
request.Body = stringReadCloser
261268

269+
// Create request
270+
request, err := m.getNewRequest("POST", u, http.Header{
271+
"Content-Type": {"application/x-www-form-urlencoded; charset=UTF-8"}}, stringReader)
272+
if err != nil {
273+
return ActionError{Action: "sms send", Err: err}
274+
}
262275
m.logger.Debug("url", request.URL.String(), "body", encoded, nil)
263276

264277
resp, err := m.httpClient.Do(request)
278+
request.Close = true
265279

266280
// Process errors
267281
switch {

0 commit comments

Comments
 (0)