Hmm benim hatam. Ben POST methodu için konuşuyordum. Siz GET methodu için anlamışsınız.
Şuan get için konuşuyorum:
Alıntı:
> Onun sonucunu da ayrıştır() diye bir işleve gönderip string[string] bir eşleme tablosu elde etmişim.
Bende sizin kodunuza bakmadan önce aynı şeyi yapıyorum. Kabul belki daha önceden bakıp esinlenmiş olabilirim :-P
Bakın unittesti:
unittest
{
string[string] deneme;
deneme=fixedString("hayvan=at&derece=Orta&sevilen+hayvan=ğüsçü&ikinci+d%C3%BC%C4%9Fme=Ba%C5%9Fka+D%C3%BC%C4%9Fme");
assert(deneme["hayvan"]=="at");
assert(deneme["sevilen hayvan"]=="ğüşçü");
}
Kod burada. İşlevin adı fixedString: https://github.com/canalpay/turna/blob/master/library/get.d#L30
Alıntı:
> Hangi akımdan okuyoruz? Benim bildiğim kadarıyla cgi programlarının ihtiyaçları ortam değişkeni olarak gelir. Şu programla oynadıkça QUERY_STRING'in nasıl değiştiğine bak:
Bu method Get için. Benim get ile şuan bir sorunum yok.
Alıntı:
> Şu programda da sorguDönüştür() diye bir işlevden yararlanmıştım:
Evet bende sizin kodlarınızı alıp library modülüne ekledim:https://github.com/canalpay/turna/blob/f7ce8bb1644cf917e36f4c0963b24d9164d38abc/library/convertToUTF8.d
Şimdi Post modülüne konuşuyoruz:
Ben post modülünü nasıl yazacağım hakkında konuşuyordum. Yani post ile nasıl veriyi alacağımı. İlk mesajda örnekler vardı başka dillerden. O kodlardan yararlanıp o kodları D diline çevirmeye çalıştım ancak yapamamıştım. Şuan anladığım kadarıyla şu biçimde olacak. :
import std.stdio;
import std.process;
import std.conv;
import std.cstream;
void main()
{
char[] deneme;
try {
writeln("Uzunluk: ", to!int(getenv("CONTENT_LENGTH")));
} catch (Exception) {
stderr.writeln("Geçersiz değer");
}
while(deneme.length<to!int(getenv("CONTENT_LENGTH"))){
deneme~=din.getc;
}
}
Sanırım bu kod sayesinde post methodu ile gönderilen verileri alabileceğim. Şimdi deneyeceğim.
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]