Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Error Posting the 50th post with GData C# library 1.0.9.3
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  6 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
pcooley  
View profile  
 More options Jan 27 2007, 10:45 am
From: "pcooley" <pcooley.newsgro...@gmail.com>
Date: Sat, 27 Jan 2007 15:45:47 -0000
Local: Sat, Jan 27 2007 10:45 am
Subject: Error Posting the 50th post with GData C# library 1.0.9.3

I've spent some time trying to narrow down this issue.  I developed a
little sample application using the C# client library that I believe
reproduces the problem in a simple way.

Problem: On this application's 50th post, it fails.  I believe this to
be a server side issue?

I am using the GData C# library 1.0.9.3 to reproduce.

Can anyone else confirm this is a problem?

The relevant info is pasted below; CODE and the Trace Error.

Paul Cooley
http://linuxlore.blogspot.com

CODE:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using Google.GData.Client;
using System.Net;

namespace TestBloggerApp
{
        /// <summary>
        /// Summary description for Form1.
        /// </summary>
        public class Form1 : System.Windows.Forms.Form
        {
                private System.Windows.Forms.Button button1;
                private System.Windows.Forms.TextBox USERNAME;
                private System.Windows.Forms.TextBox PASSWORD;
                private System.Windows.Forms.TextBox TITLE;
                private System.Windows.Forms.TextBox BODY;
                private System.Windows.Forms.TextBox DATE;
                private System.Windows.Forms.TextBox URL;
                private string texttest;
                private System.Windows.Forms.TextBox status;
                /// <summary>
                /// Required designer variable.
                /// </summary>
                private System.ComponentModel.Container components = null;

                public Form1()
                {
                        //
                        // Required for Windows Form Designer support
                        //
                        InitializeComponent();

                        DATE.Text = DateTime.Now.ToString();

                }

                /// <summary>
                /// Clean up any resources being used.
                /// </summary>
                protected override void Dispose( bool disposing )
                {
                        if( disposing )
                        {
                                if (components != null)
                                {
                                        components.Dispose();
                                }
                        }
                        base.Dispose( disposing );
                }

                #region Windows Form Designer generated code
                /// <summary>
                /// Required method for Designer support - do not modify
                /// the contents of this method with the code editor.
                /// </summary>
                private void InitializeComponent()
                {
                        this.button1 = new System.Windows.Forms.Button();
                        this.URL = new System.Windows.Forms.TextBox();
                        this.USERNAME = new System.Windows.Forms.TextBox();
                        this.PASSWORD = new System.Windows.Forms.TextBox();
                        this.TITLE = new System.Windows.Forms.TextBox();
                        this.BODY = new System.Windows.Forms.TextBox();
                        this.DATE = new System.Windows.Forms.TextBox();
                        this.status = new System.Windows.Forms.TextBox();
                        this.SuspendLayout();
                        //
                        // button1
                        //
                        this.button1.Location = new System.Drawing.Point(64, 216);
                        this.button1.Name = "button1";
                        this.button1.Size = new System.Drawing.Size(160, 23);
                        this.button1.TabIndex = 0;
                        this.button1.Text = "Publish";
                        this.button1.Click += new System.EventHandler(this.button1_Click);
                        //
                        // URL
                        //
                        this.URL.Location = new System.Drawing.Point(16, 16);
                        this.URL.Name = "URL";
                        this.URL.Size = new System.Drawing.Size(256, 20);
                        this.URL.TabIndex = 1;
                        this.URL.Text = "http://insertablognamehere.blogspot.com/feeds/
posts/full";
                        //
                        // USERNAME
                        //
                        this.USERNAME.Location = new System.Drawing.Point(16, 48);
                        this.USERNAME.Name = "USERNAME";
                        this.USERNAME.Size = new System.Drawing.Size(256, 20);
                        this.USERNAME.TabIndex = 2;
                        this.USERNAME.Text = "username";
                        //
                        // PASSWORD
                        //
                        this.PASSWORD.Location = new System.Drawing.Point(16, 80);
                        this.PASSWORD.Name = "PASSWORD";
                        this.PASSWORD.Size = new System.Drawing.Size(256, 20);
                        this.PASSWORD.TabIndex = 3;
                        this.PASSWORD.Text = "Password";
                        //
                        // TITLE
                        //
                        this.TITLE.AllowDrop = true;
                        this.TITLE.Location = new System.Drawing.Point(16, 112);
                        this.TITLE.Name = "TITLE";
                        this.TITLE.Size = new System.Drawing.Size(256, 20);
                        this.TITLE.TabIndex = 4;
                        this.TITLE.Text = "Title";
                        //
                        // BODY
                        //
                        this.BODY.Location = new System.Drawing.Point(16, 144);
                        this.BODY.Name = "BODY";
                        this.BODY.Size = new System.Drawing.Size(256, 20);
                        this.BODY.TabIndex = 5;
                        this.BODY.Text = "Body";
                        //
                        // DATE
                        //
                        this.DATE.Location = new System.Drawing.Point(16, 176);
                        this.DATE.Name = "DATE";
                        this.DATE.Size = new System.Drawing.Size(256, 20);
                        this.DATE.TabIndex = 6;
                        this.DATE.Text = "";
                        //
                        // status
                        //
                        this.status.Location = new System.Drawing.Point(56, 272);
                        this.status.Name = "status";
                        this.status.ReadOnly = true;
                        this.status.Size = new System.Drawing.Size(176, 20);
                        this.status.TabIndex = 8;
                        this.status.Text = "";
                        //
                        // Form1
                        //
                        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
                        this.ClientSize = new System.Drawing.Size(292, 318);
                        this.Controls.Add(this.status);
                        this.Controls.Add(this.DATE);
                        this.Controls.Add(this.BODY);
                        this.Controls.Add(this.TITLE);
                        this.Controls.Add(this.PASSWORD);
                        this.Controls.Add(this.USERNAME);
                        this.Controls.Add(this.URL);
                        this.Controls.Add(this.button1);
                        this.Name = "Form1";
                        this.Text = "Google Post Assistant";
                        this.ResumeLayout(false);

                }
                #endregion

                /// <summary>
                /// The main entry point for the application.
                /// </summary>
                [STAThread]
                static void Main()
                {
                        Application.Run(new Form1());
                }

                private void button1_Click(object sender, System.EventArgs e)
                {
                        status.Text = "starting to Post";
                        try
                        {
                                string _clientname = "Test Client";
                                Uri blogURI = new Uri(URL.Text);
                                FeedQuery query = new FeedQuery();
                                Service service = new Service("blogger", _clientname);
                                NetworkCredential nc = new
NetworkCredential(USERNAME.Text,PASSWORD.Text);
                                service.Credentials = nc;
                                query.Uri = blogURI;

                                //  Up up and away
                                for (int i = 0; i < 100; i++)
                                {
                                        AtomEntry newEntry = new AtomEntry();
                                        newEntry.Title.Text = TITLE.Text +" " + i.ToString();
                                        newEntry.Content.Content = BODY.Text + " " + i.ToString();
                                        //newEntry.Published =  newEntry.Updated =
DateTime.Parse(DATE.Text);
                                        newEntry.Published  = DateTime.Now;
                                        AtomEntry inserted = service.Insert(blogURI,newEntry);
                                        //System.Threading.Thread.Sleep(500);
                                        status.Text = "Posting " + i.ToString();

                                }
                            status.Text = "Posting Complete";
                        }
                        catch (Exception except)
                        {
                                MessageBox.Show(except.Message);
                        }

                }
        }

}

ERROR:

TraceCall: Constructing AtomFeed
TraceCall: parsing stream -> Start:Atom
TraceCall: Initializing basenametable support
TraceCall: Initializing atom nametable support
TraceCall: received new item notification
         calling event dispatcher
TraceCall: received new extension element notification
         calling event dispatcher
TraceCall: received new extension element notification
         new AtomEntry found, adding to collection
Found NULL service, probably mistake
Found NULL service, probably mistake
Found NULL service, probably mistake
TraceCall: received new item notification
         calling event dispatcher
         new AtomEntry found, adding to collection
TraceCall: received new item notification
         calling event dispatcher
Parsing stream -> Done
Google.GData.Client.AtomEntry ... is persistable: False
Google.GData.Client.AtomTextConstruct ... is persistable: True
Entering save inner XML on AtomEntry
Saving Title: Title 50
Google.GData.Client.AtomTextConstruct ... is persistable: True
Google.GData.Client.AtomContent ... is persistable: True
TraceCall: GoogleAuth: Execution called
Using auth token: [snip]
TraceCall: calling the real execution over the webresponse
TraceCall: GDataRequest::Execute failed: http://blogname.blogspot.com/
feeds/posts/full
Got no response object


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Frank Mantek  
View profile  
 More options Jan 29 2007, 1:10 pm
From: "Frank Mantek" <fman...@gmail.com>
Date: Mon, 29 Jan 2007 19:10:51 +0100
Local: Mon, Jan 29 2007 1:10 pm
Subject: Re: [bloggerDev] Error Posting the 50th post with GData C# library 1.0.9.3

any more details on the exception? Is there an underlying proxy that maybe
is closing your connection down?

I just tried inserting 100 entries, and it worked fine for me, so it's
probably not a generic issue.

Frank Mantek
Google

On 1/27/07, pcooley <pcooley.newsgro...@gmail.com> wrote:

...

read more »


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Pete Hopkins ☠  
View profile  
 More options Jan 29 2007, 1:17 pm
From: "Pete Hopkins ☠" <phopk...@google.com>
Date: Mon, 29 Jan 2007 10:17:08 -0800
Local: Mon, Jan 29 2007 1:17 pm
Subject: Re: [bloggerDev] Re: Error Posting the 50th post with GData C# library 1.0.9.3
Blogger rate limits at ~50 posts per day. Any more than that, and you
need to log in to the app to solve a CAPTCHA per post.

-- Pete

On 1/29/07, Frank Mantek <fman...@gmail.com> wrote:

...

read more »


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
pcooley  
View profile  
 More options Jan 29 2007, 2:26 pm
From: "pcooley" <pcooley.newsgro...@gmail.com>
Date: Mon, 29 Jan 2007 19:26:50 -0000
Local: Mon, Jan 29 2007 2:26 pm
Subject: Re: Error Posting the 50th post with GData C# library 1.0.9.3
That explains the behavior.  Thanks.

That said, how would or should a tool designed to migrate a blog from
one of your competitors into blogger work?  Is there something we can
do to assist these users?  I realize this is a balancing act between
legitimate users and people attempting to spam the system.

For instance I built this tool lj2blogger that imports a LiveJournal
blog into Blogger: http://linuxlore.blogspot.com/2006/12/livejournal-
to-blogger.html, it seems like an inconvenience to ask the users to
migrate only 50 of their entries a day?

Thank-you,
Paul Cooley

On Jan 29, 10:17 am, "Pete Hopkins ☠" <phopk...@google.com> wrote:

...

read more »


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Pete Hopkins ☠  
View profile  
 More options Jan 29 2007, 4:02 pm
From: "Pete Hopkins ☠" <phopk...@google.com>
Date: Mon, 29 Jan 2007 13:02:11 -0800
Local: Mon, Jan 29 2007 4:02 pm
Subject: Re: [bloggerDev] Re: Error Posting the 50th post with GData C# library 1.0.9.3
On 1/29/07, pcooley <pcooley.newsgro...@gmail.com> wrote:

> That explains the behavior.  Thanks.

> That said, how would or should a tool designed to migrate a blog from
> one of your competitors into blogger work?  Is there something we can
> do to assist these users?  I realize this is a balancing act between
> legitimate users and people attempting to spam the system.

> For instance I built this tool lj2blogger that imports a LiveJournal
> blog into Blogger: http://linuxlore.blogspot.com/2006/12/livejournal-
> to-blogger.html, it seems like an inconvenience to ask the users to
> migrate only 50 of their entries a day?

Yeah, I understand that this sucks for users wanting to do imports of
anything larger than a small blog. Obviously, we're thrilled when
folks want to move from another blogging platform to Blogger.

All I can say is that this is a problem we're aware of, and we'll try
to come up with a solution that lets people import their blogs while
at the same time avoiding / mitigating the potential abuse of the
system by spammers, etc.

-- Pete

...

read more »


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
pcooley  
View profile  
 More options Jan 30 2007, 12:05 am
From: "pcooley" <pcooley.newsgro...@gmail.com>
Date: Tue, 30 Jan 2007 05:05:39 -0000
Local: Tues, Jan 30 2007 12:05 am
Subject: Re: Error Posting the 50th post with GData C# library 1.0.9.3
I've been thinking about how to solve this problem this afternoon.  I
am not coming up with something ingenuous quickly.  Would an
interchange of a CAPTCHA challenge and response every 50 entries for
the API provide a solution?  It is still cumbersome, but I imagine
Blogger is getting their fair share of trouble makers.

Paul Cooley

P.S. the lj2blogger link above got broken with a line feed lets try a
HTML link instead. <a href="http://linuxlore.blogspot.com/2006/12/
livejournal-to-blogger.html"> LJ2Blogger </a>

On Jan 29, 1:02 pm, "Pete Hopkins ☠" <phopk...@google.com> wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google