загрузить сериализованные данные с помощью WebClient - PullRequest
1 голос
/ 10 января 2011

Простое требование. У меня есть класс - Пользователь - {userId, userName, age}.

Как сортировать объект класса и отправлять его на URL (используя post) с помощью веб-клиента.

Что-то вроде ниже.

Каков наилучший способ сериализации объекта пользователя в формат постданных?

WebClient client = new WebClient();
        client.Encoding = System.Text.Encoding.UTF8;
        client.Credentials = CredentialCache.DefaultNetworkCredentials;
        string postData = "orderId=5&status=processed2&advertId=ADV0001a";
        byte[] postArray = Encoding.ASCII.GetBytes(postData);
        client.Headers.Add("Content-Type","application/x-www-form-urlencoded");
        byte[] responseArray = client.UploadData(address, postArray);
        var result = Encoding.ASCII.GetString(responseArray);
        return result;

1 Ответ

0 голосов
/ 10 января 2011

Я бы применил следующее упрощение к вашему коду:

using (var client = new WebClient())
{
    client.Credentials = CredentialCache.DefaultNetworkCredentials;
    var data = new NameValueCollection 
    {
        { "userId", user.Id },
        { "userName", user.Name },
        { "age", user.Age }
    };
    var responseArray = client.UploadValues(address, data);
    return Encoding.ASCII.GetString(responseArray);
}
...