Buduję coś w rodzaju proxy.
Po wywołaniu niektórych adresów URL w aplikacji typu rack, przekazuję tę prośbę do innego adresu URL.Wysyłanie żądania z body_stream i parametrami
Żądanie, które przekazuję, to POST z plikiem i niektórymi parametrami.
Chcę dodać więcej parametrów.
Ale plik może być dość duży. Wysyłam go z Net::HTTP#body_stream
zamiast Net::HTTP#body
.
Otrzymuję moją prośbę jako obiekt Rack::Request
i tworzę z tego obiektu Net :: HTTP.
req = Net::HTTP::Post.new(request.path_info)
req.body_stream = request.body
req.content_type = request.content_type
req.content_length = request.content_length
http = Net::HTTP.new(@host, @port)
res = http.request(req)
Próbowałem na kilka sposobów, aby dodać parametry proxy. Ale wydaje się, że nic w Net :: HTTP pozwala dodawać parametry do żądania body_stream, tylko do jednego body.
Czy istnieje prostszy sposób na wykonanie proxy takiej prośby? Lub czysty sposób, aby dodać moje parametry do mojej prośby?
dlaczego 'req.set_form_data (: some => 'data')' nie działa? – mikezter
Ponieważ definiuje '# body' i resetuje' # body_stream', więc tracę wszystkie wcześniej zdefiniowane dane. –