Web sitemde temel web API'sı etrafında temel olarak bir sarıcı olan bir clojure API'si yapıyorum. Uygulayamadığım özelliklerden biri, POST istekleriyle dosya yollamaktır, temel olarak curl -F foo=bar [email protected] foobar.com
ile kabukta ne yapardım.POST isteğinde bir dosyayı nasıl gönderebilirim?
clojure-http-client kullanıyorum ve başlangıçta (resourcefully/post "foobar.com" {} {:foo "bar" :baz (File. "bak.jpg")})
formunu denedim, ancak: baz alan, yalnızca gönderdiğim gibi alma komut dosyası tarafından yoksayıldı: foo. Daha sonra File.
'u FileInputStream
olarak değiştirmeyi denedim, çünkü client.clj'nin bu satırı [51] [2], bu sınıfı sınıyor gibi görünüyor, ancak yine de aynı sonuçları alıyor.
Ardından isteğimi kontrol etmek için $ _POST yazdıran bir php sayfası oluşturdum ve görünüşe göre nesnelerin verileri tam anlamıyla gönderiliyor.
Clojure => (resourcefully/post "http://ptchan.org/pttest.php" {} {: foo "bar": baz "/tmp/bak.jpg"}) {: vücut devamı ("Dizi" bir göz atın "(" "[foo] => bar" "[baz] => /tmp/bak.jpg" ")"): kod 200,: msg "Tamam",: "POST" yöntemi: başlıklar {: date ("Cum, 02 Ekim 2009 11:41:15 GMT"),: değişir ("Kabul-Kodlama"),: content-length ("53"),: bağlantı ("close"):: content-type (" text/html "),: sunucu (" Apache/2.2.9 (Debian) PHP/5.2.6-1 + Suhosin-Patch ile lenny3 "): x-powered-by (" PHP/5.2.6-1 + " lenny3 ")},: get-header #: kurabiye nil,: url" http://ptchan.org/pttest.php "}
Clojure => (resourcefully/post" http://ptchan.org/pttest.php "{} {: foo "bar". baz (Dosya"/tmp/bak.jpg ")}) {: body-seq ("Array" "(" "[foo] => bar" "[baz] => /tmp/bak.jpg" ")"),: kod 200,: msg "Tamam",: "POST",: başlıklar {: date ("Cum, 02 Ekim 2009 11:41:30 GMT") ,: değişir ("Kabul-Kodlama"),: content-length ("53"),: bağlantı (" close "),: content-type (" text/html "),: server (" Apache/2.2.9 (Debian) PHP/5.2.6-1 + Suhosin-Patch ile lenny3 "): x-powered-by ("PHP/5.2.6-1 + lenny3")},:, #-başlık olsun: kurabiye nil,: url "http://ptchan.org/pttest.php "}
Clojure => (resourcefully/post" http://ptchan.org/pttest.php" {} {: foo "çubuk": baz (FileInputStream. "/tmp/bak.jpg")}) {: body-seq ("Array" "(" "[foo] => bar" "[baz] => [email protected]" ")") ,: kod 200,: msg "Tamam",: yöntem "POST",: başlıklar {: date ("Cum, 02 Ekim 2009 11:41:47 GMT"),: değişir ("Accept-Encoding"),: content -length ("73"),: bağlantı ("close"),: content-type ("text/html"),: server ("Apache/2.2.9 (Debian) PHP/5.2.6-1 + lenny3 ile birlikte Suhosin-Yama "): x-powered by (" PHP/5.2.6-1 + lenny3 ")},: get-header #: kurabiye nil,: url" http://ptchan.org/pttest.php "}
ben Nasıl devam edeceğinden emin değilim. Herhangi bir öneri? Hata ayıklama hakkında genel ipuçları da açığız!
Teşekkür
+1. ^^ – KB22