0

C# で asp.net を使用して、「http://www.indianrail.gov.in/cgi_bin/inet_srcdest_cgi_time.cgi」にデータを投稿しようとしています。問題は、私が使用しているコードが複数のデータを投稿できないことです。このコードは、「http://www.indianrail.gov.in/cgi_bin/inet_trnnum_cgi.cgi」にデータを 1 つだけ投稿したときは正しく機能しましたが、複数のデータを投稿しようとすると機能しません。また、各入力データに 1 つの非表示フィールドが関連付けられているため、その非表示フィールドをどうする必要がありますか。

    ASCIIEncoding encoding = new ASCIIEncoding();
    string postData = "lccp_src_stncode=" + src;
    postData += ("&lccp_dstn_stncode=" + des);
    byte[] data = encoding.GetBytes(postData);
    HttpWebRequest myRequest =  (HttpWebRequest)WebRequest.Create("http://www.indianrail.gov.in/cgi_bin/inet_srcdest_cgi_time.cgi");
    myRequest.Method = "POST";
    myRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0";
    myRequest.ContentType = "application/x-www-form-urlencoded";
    myRequest.ContentLength = data.Length;
    Stream newStream = myRequest.GetRequestStream();
    // Send the data.
    newStream.Write(data, 0, data.Length);
    newStream.Close();

    HttpWebResponse response = (HttpWebResponse)myRequest.GetResponse();

    //Get the stream containing content returned by the server.
    newStream = response.GetResponseStream();

    // Open the stream using a StreamReader for easy access.
    StreamReader reader = new StreamReader(newStream,Encoding.UTF8);

    // Read the content.
    string responseFromServer = reader.ReadToEnd();

    File.WriteAllText(@"C:\Users\Zohaib\Documents\Visual Studio 2010\WebSites\WebSite4\App_Data\data.txt", responseFromServer);
    // Clean up the streams.
    reader.Close();
    newStream.Close();
    response.Close();
4

1 に答える 1

0

POST では、データのストリームを提供するだけです。そのストリームに「2つの」ものを含める場合は、両方をストリームにシリアル化するだけです。あなたの場合、複数のクエリ文字列パラメーターを送信したい場合は、GetBytes を呼び出す前に文字列に追加するだけです

于 2012-05-12T15:27:59.263 に答える