See my earlier reply.  Java and Python are the most complete w.r.t. examplesand
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