Size: a a a

2020 November 06

UV

Ujeen Vetz in F# Chat
Тип я пишу сюда, потому что не работает )
источник

R

Roman in F# Chat
Ujeen Vetz
у меня туповатенький вопрос, но штош поделать

let requestString = 
       Http.RequestString(BaseUrl + AdditionalUrl,
                          httpMethod = "GET",
                          headers = ["Authorization", "Bearer " + apiKey])

мне к этому запросу как параметр нужно добавить json
Допустим:
params={
 "level": 1
}
Как его пихнуть?)
вот это подойдет? https://github.com/ronaldschlenker/FsHttp
источник

IC

Ilya L Che in F# Chat
Ujeen Vetz
Тип я пишу сюда, потому что не работает )
Тьфу, я опять не то скопировал. TextRequest пробовал?
источник

UV

Ujeen Vetz in F# Chat
Ilya L Che
Тьфу, я опять не то скопировал. TextRequest пробовал?
если в body. то да
источник

IC

Ilya L Che in F# Chat
Тогда расскажи подробнее, что не работает.
источник

UV

Ujeen Vetz in F# Chat
Первое просто отрабатывает без параметров, в моем случае это тупо выгрузка данных, параметр должен был указывать, на какой уровень вложенности отдавать данные

let requestString = 
       Http.RequestString(BaseUrl + AdditionalUrl,
                          httpMethod = "GET",
                          headers = ["Authorization", "Bearer " + apiKey])

   printfn "%A\n" requestString

   let requestString =
       Http.RequestString(BaseUrl + AdditionalUrl,
                          httpMethod = "GET",
                          body = TextRequest """ {"level": "1"} """,
                          headers = ["Authorization", "Bearer " + apiKey])

   printfn "%A\n" requestString
По моему ожиданию второе должно работать штатно
По итогу выкидывает ex
Unhandled exception. System.AggregateException: One or more errors occurred. (Cannot send a content-body with this verb-type.)
источник

IC

Ilya L Che in F# Chat
Видимо, нет поддержки отправки GET с боди.
источник

UV

Ujeen Vetz in F# Chat
ля, ну в документации буквально просят))
источник

IC

Ilya L Che in F# Chat
Ну тогда бери HttpClient или обёртку, как выше скинули.
источник

UV

Ujeen Vetz in F# Chat
Ну обертку сейчас буду пробовать, да )
Просто странно, должно же быть что-то очевидное
источник

MG

Max Gerasimov in F# Chat
разве это не нарушает стандарт http?
источник

IC

Ilya L Che in F# Chat
Скорее нет, чем да.
источник

UV

Ujeen Vetz in F# Chat
Ilya L Che
Ну тогда бери HttpClient или обёртку, как выше скинули.
а в клиенте это куда пихнуть нужно будет?
источник

IC

Ilya L Che in F# Chat
Ujeen Vetz
а в клиенте это куда пихнуть нужно будет?
Там надо будет создать StringContent и положить его в свойство Content у HttpRequestMessage. А потом это сообщение в SendAsync сложить. И в хэдере надо ещё тип указать, вроде бы.
источник

В

Вячеслав in F# Chat
Ilya L Che
Скорее нет, чем да.
ну параметры запроса обычно в квери
источник

IC

Ilya L Che in F# Chat
Вячеслав
ну параметры запроса обычно в квери
Да, но тем не менее это не запрещено)
Боди в гет запросах не любят использовать, потому что всякие сваггеры с OpenAPI такой вариант не поддерживают.
источник

В

Вячеслав in F# Chat
ангуляр в своей либе тоже)))
источник

IC

Ilya L Che in F# Chat
Вячеслав
ангуляр в своей либе тоже)))
Везде в браузерах так. XHR игнорирует тело гет-запроса, даже если попытаться его переслать. Поэтому используют POST с телом для получения данных.
источник

В

Вячеслав in F# Chat
угу, но у нас один чел умудрился в квери отправлять массив для запроса по нему данных
источник

В

Вячеслав in F# Chat
это забавно и уродливо)
источник