Skip to content

Commit c88b3da

Browse files
committed
response http
1 parent 9c60a3b commit c88b3da

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

core/corehttp.go

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -294,15 +294,39 @@ func (x *VMHttpResponse) Send(status VMInt, b VMString, h VMStringMap) error {
294294
return nil
295295
}
296296

297+
func (x *VMHttpResponse) RequestAsVMStringMap() (VMStringMap, error) {
298+
299+
var err error
300+
rmap := make(VMStringMap)
301+
302+
rmap["Тело"], err = x.ReadBody()
303+
if err != nil {
304+
return rmap, err
305+
}
306+
307+
rmap["ДлинаКонтента"] = VMInt(x.r.ContentLength)
308+
rmap["Статус"] = VMInt(x.r.StatusCode)
309+
310+
m1 := make(VMStringMap)
311+
for k, v := range x.r.Header {
312+
if len(v) > 0 {
313+
m1[k] = VMString(v[0])
314+
}
315+
}
316+
rmap["Заголовки"] = m1
317+
318+
return rmap, nil
319+
}
320+
297321
func (x *VMHttpResponse) MethodMember(name int) (VMFunc, bool) {
298322

299323
// только эти методы будут доступны из кода на языке Гонец!
300324

301325
switch names.UniqueNames.GetLowerCase(name) {
302326
case "отправить":
303327
return VMFuncMustParams(1, x.Отправить), true
304-
case "тело":
305-
return VMFuncMustParams(0, x.Тело), true
328+
case "сообщение":
329+
return VMFuncMustParams(0, x.Сообщение), true
306330
}
307331

308332
return nil, false
@@ -344,8 +368,11 @@ func (x *VMHttpResponse) Отправить(args VMSlice, rets *VMSlice, envout
344368
return x.Send(sts, b, h)
345369
}
346370

347-
func (x *VMHttpResponse) Тело(args VMSlice, rets *VMSlice, envout *(*Env)) error {
348-
s, _ := x.ReadBody()
349-
rets.Append(VMString(s))
371+
func (x *VMHttpResponse) Сообщение(args VMSlice, rets *VMSlice, envout *(*Env)) error {
372+
v, err := x.RequestAsVMStringMap()
373+
if err != nil {
374+
return err
375+
}
376+
rets.Append(v)
350377
return nil
351-
}
378+
}

0 commit comments

Comments
 (0)