Checkout this: http://databinder.net/dispatch/About
Easily the most rocking HTTP library in scala-land. Cheers, Tim On 14 Oct 2009, at 19:35, jon wrote: > > oh, if you want to parse directly into xml replace > > Source.fromInputStream(conn.getInputStream).getLines.mkString > with > XML.load(conn.getInputStream) > > On Oct 14, 2:32 pm, jon <jonhoff...@gmail.com> wrote: >> this should work: >> >> def post(url:URL, toPost:String):String = url.openConnection match { >> case conn: HttpURLConnection => { >> conn.setRequestMethod("POST") >> conn.setDoOutput(true) >> conn.connect >> conn.getOutputStream.write(toPost.getBytes()) >> scala.io.Source.fromInputStream >> (conn.getInputStream).getLines.mkString >> } >> >> } >> >> On Oct 14, 2:22 pm, GA <my_li...@me.com> wrote: >> >> >> >>> Hello guys, >> >>> I have created a small web service in Lift. It has two services: One >>> reads a row from a table in a database and the other writes one. To >>> test the API I am writing a small client application in scala to >>> read >>> and write from the Lift API. >>> Since I am new to scala and lift, I am thinking the code in Java and >>> writing in scala, and of course I am having some problems because of >>> that. >> >>> When I read from the Lift service, the service answers correctly, >>> but >>> my client method reads one line and ends the loop. I believe that >>> the >>> syntax of my "for comprehension" is not correct. This is my reader >>> code: >> >>> import java.net._ >>> import java.io._ >> >>> def read { >> >>> val url = new URL("http://localhost:8080/api/getPerson/myrow >>> ") >> >>> var connection = url.openConnection >>> connection.setDoOutput(true); >> >>> var in = new BufferedReader(new InputStreamReader >>> (connection.getInputStream())); >> >>> var incomingMsg = "" >> >>> **************Loop with the problem*********** >>> for (decodedString <- in.readLine) { >>> incomingMsg = incomingMsg + decodedString >>> } >> >>> in.close(); >> >>> println(incomingMsg) >>> } >> >>> My second problem is when i try to send a message to the API i >>> receive >>> the following java error: >> >>> java.io.FileNotFoundException:http://localhost:8080/api/getPerson >> >>> The error happens when the method tries to read the answers from the >>> API. This is the code: >> >>> def send { >>> val message = >>> <root> >>> <action></action> >>> <person> >>> <userName>Jose</userName> >>> <firstName>Jose</firstName> >>> <lastName>Perez</lastName> >>> <password>aaaaa</password> >>> <email>a...@aaaa.com</email> >>> <createdon>10/12/2009</createdon> >>> <createdby>Jose</createdby> >>> <updatedon>10/12/2009</updatedon> >>> <updatedby>Jose</updatedby> >>> </person> >>> </root> >> >>> val url = new URL("http://localhost:8080/api/getPerson") >> >>> var connection = url.openConnection >>> connection.setDoOutput(true); >> >>> var outgoingMsg = message.toString >> >>> var out = new OutputStreamWriter >>> (connection.getOutputStream()); >>> out.write("string=" + outgoingMsg); >>> out.close(); >> >>> *******The error happens in the next line********** >>> var in = new BufferedReader(new InputStreamReader >>> (connection.getInputStream())); >> >>> // var decodedString = "" >> >>> for (decodedString <- in.readLine) >>> println(decodedString) >>> in.close(); >>> } >> >>> Any ideas? and, by the way, are there scala packages to replace >>> java.net and java.io? >> >>> Thanks in advance, >> >>> GA > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---