将对象参数从Winform传递到Web

时间:2019-06-19 16:41:34

标签: serialization httpwebrequest

我想使用httpwebrequest将类对象从Web表单传递到Web。我可以传递一个字符串值,但不能传递复杂的对象类型。

以下是我的代码段:

private void BtnSend_Click(object sender, EventArgs e)
    {
        Employee employee = new Employee();
        employee.FirstName = "abc";
        employee.LastName = "xyz";            

        //Serialize the object into stream before sending it to the remote server
        MemoryStream memmoryStream = new MemoryStream();
        BinaryFormatter binayformator = new BinaryFormatter();
        binayformator.Serialize(memmoryStream, employee);

        //var dataBytes = System.Text.Encoding.UTF8.GetBytes(employee.ToString());            
        var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost:51953/Home/Contact");
        httpWebRequest.ContentType = "application/x-www-form-urlencoded";

        httpWebRequest.ContentLength = memmoryStream.Length;

        //httpWebRequest.ContentLength = dataBytes.Length;

        httpWebRequest.Method = "POST";

        Stream dataStream = httpWebRequest.GetRequestStream();

        byte[] buffer = new byte[memmoryStream.Length];
        int count = memmoryStream.Read(buffer, 0, buffer.Length);
        dataStream.Write(buffer, 0, buffer.Length);

        //dataStream.Write(dataBytes, 0, dataBytes.Length);
        //dataStream.Flush();
        //dataStream.Close();

        WebResponse response = httpWebRequest.GetResponse();

        //lblShow.Text = ((HttpWebResponse)response).StatusDescription;

        dataStream = response.GetResponseStream();

        StreamReader streamReader = new StreamReader(dataStream);

        string responseFromServer = streamReader.ReadToEnd();
        // Display the content.  
        //lblShow.Text += " " + responseFromServer;

        streamReader.Close();
        response.Close();
    }
}

注释的代码用于发送我可以执行的字符串值,但是现在我想传递对象类型。

在Web服务器代码上,我获得了传递为null的值。

以下是快照: enter image description here

以下是我的员工班级:

[Serializable]
public class Employee
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

因此,可以使用任何方法通过任何方式将对象类型从Winforms传递到Web。

任何指导或帮助都很好。

在此先感谢!!! ..

0 个答案:

没有答案