Google Appengine uygulamasına POST için perl betiği kullanıyorum. -F seçeneğini kullanarak bazı XML içeren bir metin dosyası gönderiyorum.POST isteği için doğru Content-Length nasıl yapılır
http://www.cpan.org/authors/id/E/EL/ELIJAH/bget-1.1
Orada zaten test sürüm 1.2, ve aynı sorunu olsun. Mesaj böyle bir şey gibi görünüyor.
Host: foo.appspot.com
User-Agent: lwp-request/1.38
Content-Type: text/plain
Content-Length: 202
<XML>
<BLAH>Hello World</BLAH>
</XML>
Örneği 202 değiştirilmeden değiştirdim, endişelenme. Soruna açık. İçerik Uzunluğu, dosyadaki baytların sayısıyla eşleşir, ancak Content-Length'ı elle genişletmezse, tüm dosyayı göndermezse, birkaç bayt kısaltılır. Kesilen baytların sayısı, farklı boyutlardaki dosyalar için aynı değildir. Komutta -r seçeneğini kullandım ve ne gönderdiğini görebiliyorum ve tüm dosyayı gönderiyor, ancak Google Appengine self.request.body her şeyin alınmadığını gösteriyor. Çözümün, Content-Length için doğru numarayı elde etmek olduğunu düşünüyorum ve görünüşe göre dosyadaki bayt sayısı kadar basit değil ya da perl betiği bunu bir şekilde hallediyor.
Güncelleme: Doğru cevap için Erickson'a teşekkürler. Karakterleri dosyanın sonuna eklemek için printf kullandım ve her zaman dosyadaki satır sayısını tam olarak kırpmıştım. Sunucu tarafında her karakterin yinelenen ama buna değmeyerek neyin eklendiğini anlayabilirim. Bu, uygulama motoru için ayarlanmış google gruplarında bile yanıtlanmadı!