hofsoc

hofsoc

  • NA
  • 6
  • 0

Problem uploading a file to servlet

Jun 9 2009 4:43 AM
I want to upload a file from c#.net app to a servlet. I am using webclient.UploadFile() and I have also added some data to the uri (see postData below). Everything seems to work ok except webclient seems to be calling the post and the get within the servlet. Therefore my response = null as the get method returns nothing. Can anyone explain why this is happening? If so is there a better way to complete this? To resolve the issue for the moment I am implementing a singleton as my servlet and obviously this is not the way to go so any assistance on this would be appreciated. Code is below:

Thanks,

  • //send metadata and file to the servlet
  •  
  • log.Debug("Create instance of WebClient");
  •  
  • WebClient client = new WebClient();
  •  
  • log.Debug("Get the securityToken");
  •  
  • String securityToken = SecurityToken.getToken();
  •  
  • log.Debug("SecurityToken is set to: " + securityToken);
  •  
  • log.Debug("Create a collection of values");
  •  
  • NameValueCollection querystring = setCollectionValues(m1, securityToken);
  •  
  • log.Debug("Create the postData which will include the securityToken and all metadata");
  •  
  • string postdata = "?";
  •  
  • if (querystring != null)
  • {
  • foreach (string key in querystring.Keys)
  • {
  • postdata += key + "=" + querystring.Get(key) + "&";
  • }
  • }
  •  
  • log.Debug("Create the uri and add the postdata.");
  •  
  • Uri uri = new Uri(url + postdata);
  •  
  • log.Debug("URI is: " + uri.ToString());
  •  
  • //Create streams for request /response
  •  
  • Stream data = null;
  •  
  • StreamReader reader = null;
  •  
  • //try to upload the file to the servlet
  •  
  • try
  • {
  • log.Debug("Try Upload file " + file + " to servlet at " + url);
  •  
  • client.UploadFile(uri, "POST", file);
  •  
  • data = client.OpenRead(url);
  •  
  • if (data != null)
  • {
  • log.Debug("Response returned from server.");
  •  
  • reader = new StreamReader(data);
  •  
  • saveStatus = reader.ReadToEnd();
  •  
  • Console.Write("Response From Server: " + saveStatus);
  • }
  • else
  • {
  • log.Debug("Error Accessing the saveServlet");
  •  
  • saveStatus = "Problem with Server. Try Again later";
  • }
  •  
  • log.Debug("Close the Streams");
  •  
  • reader.Close();
  • data.Close();
  • }
  • catch(WebException e)
  • {
  • log.Error("Error with accessing the server / servlet. Error returned is: " + e.Status);
  •  
  • saveStatus = "<ERROR>Error occured while trying to upload file to server.<ERROR>";
  • }
  •  
  • }
  • else
  • {
  • log.Debug("Client side validation Failed.");
  •  
  • saveStatus = validationStatus;
  •  
  • log.Debug("Set the return String to the validationStatus: " + validationStatus);
  • }
  •