http://joel.net/code/easyhttp.aspxyou can use this to perform http calls too. Joel Thoms DiscountASP.NET http://www.DiscountASP.NET
I'm trying to convert an java object to c# object, this file transfer information in secure mode using HTTPS. The conversion was succesfully but when i run it the program im'm obtain the next error: 'The server committed an HTTP protocol violation' and i don't understand why. Thanks for your help... The code in java: public synchronized short performTransaction() throws FileNotFoundException { short result = -1; String protocol = ''; debugMsg = new StringBuffer('---------- ' + String.valueOf(new Timestamp(System.currentTimeMillis())) + ' ----------'); if (ssl) System.setProperty('java.protocol.handler.pkgs', 'com.sun.net.ssl.internal.www.protocol'); try { if (webAddress.length() <= 0) { error = 'No webAddres specified.'; return -1; } if (ssl) protocol = 'https://'; else protocol = 'http://'; String servletname = new String(); if (context.length() > 0) { if (!context.startsWith('/')) servletname = servletname + '/'; servletname = servletname + context; if (!context.endsWith('/')) servletname = servletname + '/'; } else { servletname = servletname + '/'; } servletname = servletname + 'servlet/TranPortalXMLServlet'; URL u; if (port.length() > 0) u = new URL(protocol + webAddress + ':' + port + servletname); else u = new URL(protocol + webAddress + servletname); debugMsg.append('\nAbout to create http connection'); URLConnection c; if (ssl) c = (HttpsURLConnection)u.openConnection(); else c = u.openConnection(); debugMsg.append('\nCreated connection'); c.setDoInput(true); c.setDoOutput(true); c.setUseCaches(false); c.setRequestProperty('Content-Type', 'application/xml'); String request = buildRequestString(); debugMsg.append('\nREQUEST: ' + request); System.out.println(); System.out.println('Data Sent = ' + u + '?' + request); if (request.length() > 0) { debugMsg.append('\nabout to write DataOutputSteam'); DataOutputStream dos = new DataOutputStream(c.getOutputStream()); debugMsg.append('\nafter DataOutputStream'); dos.writeBytes(request); dos.flush(); dos.close(); BufferedReader dis = new BufferedReader(new InputStreamReader(c.getInputStream())); result = parseResults(dis); } else { error = 'No Data To Post!'; throw new NotEnoughDataException(error); } } catch (Exception e) { clearResults(); error = 'Failed to make connection:\n' + e; result = -1; } return result; } The code in C# public virtual short performTransaction() { short result = -1; String protocol = ''; TimeSpan tiempo = new TimeSpan(TimeSpan.TicksPerMillisecond); debugMsg = new StringBuilder('---------- ' + tiempo.ToString() + ' ----------'); try { if (webAddress.Length <= 0) { error = 'WebAddress was not specified.'; return -1; } if (ssl) protocol = 'https://'; else protocol = 'http://'; string servletname = string.Empty; if (context.Length > 0) { if (!context.StartsWith('/')) { servletname = servletname + '/'; } servletname = servletname + context; if (!context.EndsWith('/')) servletname = servletname + '/'; } else { servletname = servletname + '/'; } servletname = servletname + 'servlet/TranPortalXMLServlet'; string url; if (port.Length > 0) { url = protocol + webAddress + ':' + port + servletname; } else { url = protocol + webAddress + servletname; } debugMsg.Append('\nAbout to create http Connection'); HttpWebRequest request; WebResponse response; //WebResponse response; if (ssl) { request = WebRequest.Create(url) as HttpWebRequest; } else { request = WebRequest.Create(url) as HttpWebRequest; } response = request.GetResponse(); debugMsg.Append('\nCreated connection'); request.ContentType = REQUEST_CONTENT_TYPE; string solicitud = buildRequestString(); byte[] byteArray = Encoding.UTF8.GetBytes(solicitud); debugMsg.Append('\nREQUEST: ' + solicitud); Console.WriteLine('Data Sent = ' + url + '?' + solicitud); if (solicitud.Length > 0) { debugMsg.Append('\nAbout to write DataStream'); Stream dataStream = response.GetResponseStream(); debugMsg.Append('\nafter DataOutputStream'); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Flush(); dataStream.Close(); StreamReader readStream = new StreamReader(response.GetResponseStream()); result = parseResults(readStream); } else { error = 'No Data To Post!'; throw new FileNotFoundException(error); } } catch(Exception e) { clearResults(); error = 'Failed to make connection:\n' + e.Message; result = -1; } return result; }