danesparza / MailChimp.NET

:envelope: .NET Wrapper for the MailChimp v2.0 API
MIT License
179 stars 119 forks source link

List<BatchEmailParameter> Error while webservice call #194

Closed shwetaArora1309 closed 8 years ago

shwetaArora1309 commented 8 years ago

Hello danes,

Thanks for posting mail chimp. I can see its going to be very helpful in my start of mail chimp integration.

I am trying to call service with List in below way. Its not allowing me to call the service.

string confirmExistance = ""; string UsernameAPI = "http://localhost:32724/MailchimpAppProgramService.svc/BatchSubscribe"; HttpWebRequest request = WebRequest.Create(UsernameAPI) as HttpWebRequest;

//This is just test data to test the service is working properly, I am going to use dyncmic Data fetched from DB. List emailList = new List();

        BatchEmailParameter d= new BatchEmailParameter(); 
        EmailParameter a=new EmailParameter();
        a.Email="shweta@gmail.com";
        d.Email=a;
        d.EmailType = "text";

        BatchEmailParameter d1 = new BatchEmailParameter();
        EmailParameter a1 = new EmailParameter();
        a1.Email = "mini@gmail.com";
        d1.Email = a1;
        d1.EmailType = "text";   

        emailList.Add(d);
        emailList.Add(d1);
        var json = JsonConvert.SerializeObject(emailList);
        string parameters = "{\"listId\":\"cc88f46ed8\",\"listOfEmails\":\"" + json + "\",\"doubleOptIn\":\"false\",\"updateExisting\":\"false\",\"replaceInterests\":\"false\"}";

if (request != null) { request.Method = "POST"; request.ContentLength = 0; request.ContentType = "application/json"; if (!string.IsNullOrEmpty(parameters)) { byte[] byteArray = Encoding.UTF8.GetBytes(parameters); request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); }

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream responseStream = response.GetResponseStream();
            if (responseStream != null)
            {
                var streamReader = new StreamReader(responseStream);

                confirmExistance = streamReader.ReadToEnd();
                streamReader.Close();
                streamReader.Dispose();
            }

            if (responseStream != null)
            {
                responseStream.Close();
                responseStream.Dispose();
            }
        } 
        return confirmExistance;

I am calling it from server side rather from js. Somewhere List is the wrong way i am calling with, but how it shall be i am not aware of.Please advice where i am going wrong.

Thanks, Shweta

shwetaArora1309 commented 8 years ago

Its done . Thanks.