Salve ragazzi, ho un problema.
Nel corso di un progetto devo inviare una richiesta HTTP mediante metodo POST e ho fatto così:
codice:HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:8090/BrowserUsageMonitorServer"); request.Method = "POST"; string postData = "This is a test that posts this string to a Web server."; byte[] byteArray = Encoding.UTF8.GetBytes (postData); request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = byteArray.Length; request.ProtocolVersion = HttpVersion.Version11; Stream dataStream = request.GetRequestStream (); dataStream.Write (byteArray, 0, byteArray.Length); dataStream.Close (); WebResponse response = request.GetResponse (); Console.WriteLine (((HttpWebResponse)response).StatusDescription); dataStream = response.GetResponseStream (); StreamReader reader = new StreamReader (dataStream); string responseFromServer = reader.ReadToEnd (); Console.WriteLine (responseFromServer); reader.Close (); dataStream.Close (); response.Close ();
Come Web Server, "dall'altra parte", utilizzo Apache Tomcat, gestito da una semplice pagina index.jsp, così implementata:
Ho due grandi problemi problemi:codice:System.out.println(request.getMethod()); if(request.getMethod().equals("POST")){ System.out.println("MESSAGGIO ARRIVATO"); String clientIdentifier = request.getHeader("CLIENT_ID"); String dataType = request.getHeader("DATA_TYPE"); System.out.println("CID="+clientIdentifier + " " + "DATA_TYPE="+dataType); ArrayList<String> postContent = new ArrayList<String>(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(request.getInputStream())); String line = ""; while((line = bufferedReader.readLine()) != null){ if(!line.equals("")){ System.out.println("--> " + line); postContent.add(line); } } bufferedReader.close(); response.setStatus(200); } else if(request.getMethod().equals("GET")){ response.setStatus(200); }
- 1. Se imposto
mi torna errore 505, ossia HTTP Protocol Version Not Supported. C'è qualcosa che devo cambiare in Apache Tomcat oppure ho sbagliato ad impostare qualcosa sul mio programmino C#?codice:request.ProtocolVersion = HttpVersion.Version11- 2. Questo invece è un problema più grande. Quando invio la richiesta con C# (il codice l'ho preso da MSDN) arriva al server ma viene vista come una GET. Come se non riconoscesse una richiesta di tipo POST. Dove sbaglio?
Grazie a chi potrà aiutarmi.

Rispondi quotando