OK, I will do that, but in my interest for self-preservation I would  
like to be able to get something working today. I almost considered  
hiring a temp to hit the update button onthe docs update button on the  
docs.google.com page every minute (LOL), I also thought of using  
Amazon's mechanical turk and offer  .05 an upload :)

Since we have gone so far with this to you have anything else I can  
try before my surrender?
On Jun 16, 2009, at 1:59 PM, Eric Bidelman wrote:

> See my earlier reply.  Java and Python are the most complete w.r.t.  
> examples
> and code snippets in the docs:
> http://code.google.com/apis/documents/docs/2.0/developers_guide_java.html
> http://code.google.com/apis/documents/docs/1.0/developers_guide_python.html
>
> E
>
> On Tue, Jun 16, 2009 at 8:00 AM, harry mendell <harry.mend...@gmail.com 
> > wrote:
> Stuck again! Do any of the new apis support all of the high level  
> client code, If so I'm hitting the ejector seat button. I don't care  
> if I have to learn a new language from scratch be it "ruby on rails  
> or whatever", the whole point of this exercise is to make developing  
> new apps a " LEGO kit". Otherwise I am going to have to really study  
> these low level protocols. It reminds me of my old assembler days.  
> The more things change the more they remain the same. At least I can  
> see from the other forum posts that I am not alone in my  
> frustration. Step back for a second. Almost all of the forum  
> questions involve what is essentially reading and writing data. I  
> thought that was solved in the 1960s :)
>
> I have a suggestion. Take all of the classes/methods that allow  
> public and published data and produce a private and behind the  
> firewall version that does exactly the same thing. Boom! Problems  
> solved at once and I'll have a chance using Google internally. - Harry
>
> In the mean time could you please sherpa me to mid-base?
> On Jun 15, 2009, at 7:50 PM, Eric Bidelman wrote:
>
>> That 3rd parameter to update is a mimetype, not an file extension.
>> That's the GDocumntsAllowedType hashmap takes care of :)
>>
>> try: text/csv
>>
>> Eric
>>
>> On Mon, Jun 15, 2009 at 4:35 PM, harry mendell <harry.mend...@gmail.com 
>> > wrote:
>> Google.GData.Client.GDataRequestException was unhandled
>>   Message="Execution of request failed: 
>> http://docs.google.com/feeds/media/private/full/spreadsheet:rqfFdRlpaWjFOyJ9MrslMjg
>>  
>> "
>>   Source="Google.GData.Client"
>>   ResponseString="Malformed Content-Type"
>>   StackTrace:
>>        at Google.GData.Client.GDataRequest.Execute()
>>        at Google.GData.Client.GDataGAuthRequest.Execute(Int32  
>> retryCounter)
>>        at Google.GData.Client.GDataGAuthRequest.Execute()
>>        at Google.GData.Client.Service.StreamSend(Uri targetUri,  
>> Stream inputStream, GDataRequestType type, String contentType,  
>> String slugHeader, String etag, AsyncSendData data)
>>        at Google.GData.Client.Service.StreamSend(Uri targetUri,  
>> Stream inputStream, GDataRequestType type, String contentType,  
>> String slugHeader)
>>        at Google.GData.Client.Service.Update(Uri uriTarget, Stream  
>> input, String contentType, String slugHeader)
>>        at myfirstcsharp.Program.Main(String[] args) in C:\Documents  
>> and Settings\harry\My Documents\Visual Studio 2008\Projects 
>> \updatesheet\myfirstcsharp\Program.cs:line 54
>>        at System.AppDomain._nExecuteAssembly(Assembly assembly,  
>> String[] args)
>>        at System.AppDomain.nExecuteAssembly(Assembly assembly,  
>> String[] args)
>>        at System.Runtime.Hosting.ManifestRunner.Run(Boolean  
>> checkAptModel)
>>        at System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
>>        at  
>> System 
>> .Runtime 
>> .Hosting.ApplicationActivator.CreateInstance(ActivationContext  
>> activationContext, String[] activationCustomData)
>>        at  
>> System 
>> .Runtime 
>> .Hosting.ApplicationActivator.CreateInstance(ActivationContext  
>> activationContext)
>>        at System.Activator.CreateInstance(ActivationContext  
>> activationContext)
>>        at  
>> Microsoft 
>> .VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
>>        at System.Threading.ThreadHelper.ThreadStart_Context(Object  
>> state)
>>        at System.Threading.ExecutionContext.Run(ExecutionContext  
>> executionContext, ContextCallback callback, Object state)
>>        at System.Threading.ThreadHelper.ThreadStart()
>>   InnerException: System.Net.WebException
>>        Message="The remote server returned an error: (400) Bad  
>> Request."
>>        Source="System"
>>        StackTrace:
>>             at System.Net.HttpWebRequest.GetResponse()
>>             at Google.GData.Client.GDataRequest.Execute()
>>        InnerException:
>>
>>
>> On Jun 15, 2009, at 6:49 PM, Eric Bidelman wrote:
>>
>>> Sorry.  The definition of GDocumntsAllowedType is in the lib's  
>>> source:
>>> http://code.google.com/p/google-gdata/source/browse/trunk/clients/cs/src/gdocuments/documentservice.cs#56
>>>
>>> What is the exception/response from the server?
>>>
>>> Eric
>>>
>>> On Mon, Jun 15, 2009 at 3:37 PM, harry mendell <harry.mend...@gmail.com 
>>> > wrote:
>>>
>>> Dear Eric,
>>> I tried adapting your code and wrote a test which I copied  
>>> below.   It fails at
>>> DocumentEntry entry = service.Update(new  
>>> Uri(lastUploadEntry.MediaUri.ToString()), stream, "CSV",  
>>> lastUploadEntry.Title.Text) as DocumentEntry;
>>> which is almost at the bottom. I think I'm having a some code of  
>>> compatibility issue between the ACL and token auth, but this end  
>>> of the pool is pretty deep.
>>> Would you mind taking a look?
>>> Thanks,
>>> Harry
>>>
>>>
>>>
>>>
>>>
>>>
>>> using System;
>>> using System.IO;
>>> using System.Collections;
>>> using System.Net;
>>> using System.Collections.Generic;
>>> using Google.Spreadsheets;
>>> using System.Linq;
>>> using System.Text;
>>> using Google.GData.Documents;
>>> using Google.GData.Client;
>>> using Google.GData.Extensions;
>>>
>>>
>>>
>>> namespace myfirstcsharp
>>> {
>>>
>>>     class Program
>>>     {
>>>         static void Main(string[] args)
>>>         {
>>>             DocumentsService service = new DocumentsService("HBM- 
>>> DocListUploader-1");
>>>              
>>> ((GDataRequestFactory)service.RequestFactory).KeepAlive = false;
>>>             service.setUserCredentials("qvtuat", "qvtqvtqvt");
>>>             //force the service to authenticate
>>>             DocumentsListQuery query = new DocumentsListQuery();
>>>             query.NumberToRetrieve = 1;
>>>             service.Query(query);
>>>
>>>
>>>             // For testing only. Creates document called radar.csv
>>>             DocumentEntry lastUploadEntry =  
>>> service.UploadDocument("c:/radar.csv", "radar.csv");
>>>             // For testing only. Now lets see if we can update it
>>>             FileInfo fileInfo = new FileInfo("c:/radar.csv");
>>>             FileStream stream = fileInfo.Open(FileMode.Open,  
>>> FileAccess.Read, FileShare.ReadWrite);
>>>
>>>             try
>>>             {
>>>                 /* It didn't recogize GDocumntsAllowedType so I  
>>> commented the check since I know its good type
>>>                 // convert the extension to caps and strip the "."  
>>> off the front
>>>                 string ext =  
>>> fileInfo.Extension.ToUpper().Substring(1);
>>>                 String contentType =  
>>> (String)GDocumentsAllowedTypes[ext];
>>>
>>>                 if (contentType == null)
>>>                 {
>>>                     throw new ArgumentException("File extension '"  
>>> + ext + "' is not recognized as valid.");
>>>                 }
>>>                 // Make sure we don't overwrite someone else's  
>>> changes.  Use entry's ETag
>>>              */
>>>                 GDataRequestFactory factory =  
>>> (GDataRequestFactory)service.RequestFactory;
>>>                 factory.CustomHeaders.Add("If-Match: " +  
>>> lastUploadEntry.Etag);
>>>                 service.RequestFactory = factory;
>>>                 DocumentEntry entry = service.Update(new  
>>> Uri(lastUploadEntry.MediaUri.ToString()), stream, "CSV",  
>>> lastUploadEntry.Title.Text) as DocumentEntry;
>>>             }
>>>             finally
>>>             {
>>>                 stream.Close();
>>>             }
>>>         }
>>>     }
>>> }
>>>
>>>
>>> On Jun 11, 2009, at 5:16 PM, Eric (Google) wrote:
>>>
>>>>
>>>> This worked for me:
>>>>
>>>> DocumentsService service = new DocumentsService("yourCompany- 
>>>> AppName-
>>>> v1");
>>>> // TODO: Fetch DocumentEntry
>>>> ReplaceDocContents(entryToUpdate, "C:\somewhere\test.doc");
>>>> ...
>>>>
>>>> static public DocumentEntry ReplaceDocContents(DocumentEntry
>>>> entryToUpdate, string replacementFileName)
>>>> {
>>>>  DocumentEntry entry = null;
>>>>
>>>>  FileInfo fileInfo = new FileInfo(replacementFileName);
>>>>  FileStream stream = fileInfo.Open(FileMode.Open, FileAccess.Read,
>>>> FileShare.ReadWrite);
>>>>
>>>>  try
>>>>  {
>>>>    // convert the extension to caps and strip the "." off the front
>>>>    string ext = fileInfo.Extension.ToUpper().Substring(1);
>>>>
>>>>    String contentType = (String)GDocumentsAllowedTypes[ext];
>>>>
>>>>    if (contentType == null)
>>>>    {
>>>>        throw new ArgumentException("File extension '" + ext +
>>>>                                    "' is not recognized as  
>>>> valid.");
>>>>    }
>>>>
>>>>    // Make sure we don't overwrite someone else's changes.  Use
>>>> entry's ETag
>>>>    GDataRequestFactory factory = (GDataRequestFactory)
>>>> service.RequestFactory;
>>>>    factory.CustomHeaders.Add("If-Match: " + entryToUpdate.Etag);
>>>>    service.RequestFactory = factory;
>>>>
>>>>    entry = service.Update(new  
>>>> Uri(entryToUpdate.MediaUri.ToString()),
>>>>                           stream, contentType,
>>>> entryToUpdate.Title.Text) as DocumentEntry;
>>>>  }
>>>>  finally
>>>>  {
>>>>    stream.Close();
>>>>  }
>>>>
>>>>  return entry;
>>>> }
>>>>
>>>> You may have more luck next time if the post isn't "write my app  
>>>> for
>>>> me".
>>>>
>>>> Eric
>>>>
>>>> On Jun 11, 11:49 am, harry mendell <qvt...@gmail.com> wrote:
>>>>> I tried .net and first and can upload but not update. At this  
>>>>> point I
>>>>> would be grateful for any solution. I've been at this for over a  
>>>>> week
>>>>> and am ready to put my head through the wall:)
>>>>>
>>>>> PS I am able to do it a cell at a time with the spreadsheet api,  
>>>>> but
>>>>> its slow, and besides I am not going to be able to sleep until I  
>>>>> get
>>>>> this. I haven't felt like such a newbie since I poped out of my
>>>>> mother. Starting to feel postal.
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
>
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Docs Data APIs" group.
To post to this group, send email to Google-Docs-Data-APIs@googlegroups.com
To unsubscribe from this group, send email to 
google-docs-data-apis+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/Google-Docs-Data-APIs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to