如何在POST请求后从变量页面获取数据

时间:2015-02-19 16:08:41

标签: post d

是一个页面,仅在从Web表单完成POST请求后才显示数据。

我无法理解在发送邮件请求后如何从变量页面获取数据的问题。

我的代码:

void main()
{
    string baseurl = "http://www.kakioka-jma.go.jp/cgi-bin/plot/plotNN.pl";
    string postreq = "place=kak&lang=en&datatype=provisional&datakind=e&sampling=1-min&hipasssec=150&year=2015&month=2&day=18&hour=0&min=0";

    auto http = HTTP(baseurl);

    http.postData = postreq;
    auto x = http.responseHeaders();
    http.perform();
    writeln("=");
    writeln(x);
}

完成http.perform();后,我在控制台页面内容上看到了。但我不想输出。我想把它放在变量中,然后解析。

它看起来writeln(x);是空的......

请你展示一些例子并说出我做错了什么。

1 个答案:

答案 0 :(得分:1)

std.net.curl库实际上为HTTP getpost提供了更高级别的功能。您可以通过以下方式获取页面文本:

void main()
{
    string baseurl = "http://www.kakioka-jma.go.jp/cgi-bin/plot/plotNN.pl";
    string postreq = "place=kak&lang=en&datatype=provisional&datakind=e&sampling=1-min&hipasssec=150&year=2015&month=2&day=18&hour=0&min=0";
    string content = post(baseurl, postreq).idup;
    writeln(content);
}

然后将content传递给您的解析函数。您还可以将变量作为URL变量传递到此页面上的perl脚本,并使用GET调用:

string myurl = "http://www.kakioka-jma.go.jp/cgi-bin/plot/plotNN.pl?place=kak&lang=en&datatype=provisional&datakind=e&sampling=1-min&hipasssec=150&year=2015&month=2&day=18&hour=0&min=0";
string content = get(myurl).idup;

无需担心发布数据。