BTW, It seems to work ok on the android device. On Tuesday, March 16, 2021 at 5:13:30 PM UTC-4 Dennis Rogers wrote:
> The URL is wrong. It should be: "https://symdesigns.com/php/export.php". > With that change your test code seems to work ok on the simulator (returns > ok) but > on the device it doesn't (returns nok); When I look at the server logs it > still seems to receive > a blank email and password when run from the device. > On Monday, March 15, 2021 at 10:40:12 PM UTC-4 Shai Almog wrote: > >> I ran this test case but I'm getting an error from the server in the >> "success" dialog: >> >> Form hi = new Form("Hi World", BoxLayout.y()); >> Button test = new Button("Test"); >> hi.add(test); >> test.addActionListener(e -> { >> try { >> URL url = new URL(" >> https://symdesigns.com/symdesigns.com/php/export.php"); >> URL.URLConnection link = url.openConnection(); >> link.setDoOutput(true); >> link.setDoInput(true); >> OutputStream os = link.getOutputStream(); >> os.write(("[email protected]\n").getBytes()); >> os.write(("f47ba92cf7\n").getBytes()); >> os.close(); >> >> InputStream is = link.getInputStream(); >> String ans = Util.readToString(is); >> >> Dialog.show("Success", ans, "OK", null); >> } catch(Exception err) { >> Dialog.show("Error", err.toString(), "OK", null); >> Log.p("URL error"); >> Log.e(err); >> } >> }); >> >> hi.show(); >> >> On Monday, March 15, 2021 at 4:04:23 PM UTC+2 [email protected] wrote: >> >>> "f47ba92cf7" is the hashed password i.e. >>> >>> "f47ba92cf7" = getHash("test2.xcom"+"pw2") >>> >>> The following is the getHash code I'm using: >>> >>> static String getHash(String str) { >>> return dumpBytes(MD5.computeMD5(str.getBytes())).substring(0,10); >>> } >>> public static String dumpBytes(byte[] buffer) { >>> if (buffer == null) { >>> return ""; >>> } >>> StringBuilder sb = new StringBuilder(); >>> sb.setLength(0); >>> for (int i = 0; i < buffer.length; i++) { >>> sb.append((char) (HEX_CHAR[(buffer[i] & 0x00F0) >> 4])) >>> .append((char) (HEX_CHAR[buffer[i] & 0x000F])); >>> } >>> return sb.toString(); >>> } >>> >>> BTW What time zone are you in? >>> >>> -Dennis >>> On Sunday, March 14, 2021 at 10:08:01 PM UTC-4 Shai Almog wrote: >>> >>>> Thanks! >>>> I'm trying to reproduce it and noticed I'm still missing the code of >>>> getHash. >>>> >>>> On Sunday, March 14, 2021 at 5:18:47 PM UTC+2 [email protected] wrote: >>>> >>>>> I forgot to tell you. The password "pw2" is hashed to "f47ba92cf7". >>>>> >>>>> On Sunday, March 14, 2021 at 11:12:37 AM UTC-4 Dennis Rogers wrote: >>>>> >>>>>> Sure, You can use "[email protected]" for the email (user id) and "pw2" as >>>>>> the password. >>>>> >>>>> >>>>>> >>>>>> On Saturday, March 13, 2021 at 10:03:59 PM UTC-5 Shai Almog wrote: >>>>>> >>>>>>> Thanks, is it possible to create a dummy username/password combo >>>>>>> with no permissions so we can test this? >>>>>>> >>>>>>> On Saturday, March 13, 2021 at 2:59:16 PM UTC+2 [email protected] >>>>>>> wrote: >>>>>>> >>>>>>>> The server URL is https://www.symdesigns.com. I have a web page at >>>>>>>> symdesigns.com/ShoppingGenie/index.html and the server php is / >>>>>>>> symdesigns.com/php/export.php . >>>>>>>> >>>>>>>> On Friday, March 12, 2021 at 11:45:51 PM UTC-5 Shai Almog wrote: >>>>>>>> >>>>>>>>> Interesting, can you expose the server URL so we can run this test >>>>>>>>> case and see? >>>>>>>>> >>>>>>>>> On Friday, March 12, 2021 at 10:57:24 PM UTC+2 [email protected] >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> I switched to using Util.readToString() and still no joy on the >>>>>>>>>> iphone device. >>>>>>>>>> The code still works ok on the simulator and on also on a real >>>>>>>>>> Android device. >>>>>>>>>> >>>>>>>>>> On Wednesday, March 10, 2021 at 10:28:42 PM UTC-5 Shai Almog >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Try using String ans = Util.readToString(); which might be >>>>>>>>>>> better. >>>>>>>>>>> Is the code still working on the simulator after the changes? >>>>>>>>>>> Is it working on Android? >>>>>>>>>>> >>>>>>>>>>> On Wednesday, March 10, 2021 at 5:09:18 PM UTC+2 >>>>>>>>>>> [email protected] wrote: >>>>>>>>>>> >>>>>>>>>>>> Replacing flush() with close() didn't make a difference. Here's >>>>>>>>>>>> the code I used without the buffer: >>>>>>>>>>>> >>>>>>>>>>>> os = link.getOutputStream(); >>>>>>>>>>>> os.write((nemail + "\n").getBytes()); >>>>>>>>>>>> pwHash = getHash(nemail + npasswd); >>>>>>>>>>>> os.write((pwHash + "\n").getBytes()); >>>>>>>>>>>> os.close(); >>>>>>>>>>>> >>>>>>>>>>>> is = link.getInputStream(); >>>>>>>>>>>> String ans = readLine(is); >>>>>>>>>>>> >>>>>>>>>>>> static String readLine(InputStream stream) { >>>>>>>>>>>> byte[] b = new byte[80]; >>>>>>>>>>>> String s = ""; >>>>>>>>>>>> int i = 0; >>>>>>>>>>>> try { >>>>>>>>>>>> b[i] = (byte) stream.read(); >>>>>>>>>>>> while((b[i] != 10 && (b[i] != 13))) { >>>>>>>>>>>> i++; >>>>>>>>>>>> b[i] = (byte) stream.read(); >>>>>>>>>>>> } >>>>>>>>>>>> b[i] = 0; >>>>>>>>>>>> return new String(b,0,i); >>>>>>>>>>>> } catch(IOException e) { >>>>>>>>>>>> Log.e(e); >>>>>>>>>>>> return null: >>>>>>>>>>>> } >>>>>>>>>>>> } >>>>>>>>>>>> On Tuesday, March 9, 2021 at 10:23:18 PM UTC-5 Shai Almog wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Can you include the full code after removing the buffers? >>>>>>>>>>>>> Also try replacing flush() with close(). That might help. >>>>>>>>>>>>> >>>>>>>>>>>>> On Tuesday, March 9, 2021 at 3:31:25 PM UTC+2 >>>>>>>>>>>>> [email protected] wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> I'm able to access all the websites on that IP from the >>>>>>>>>>>>>> device. I also tried accessing the reply from the server without >>>>>>>>>>>>>> the >>>>>>>>>>>>>> BufferedInputStream with no luck. >>>>>>>>>>>>>> >>>>>>>>>>>>>> The certificate I used was one I bought from bluehost.com >>>>>>>>>>>>>> who hosts my server. >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Monday, March 8, 2021 at 9:51:04 PM UTC-5 Shai Almog wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> With valid (not self signed) certificate? >>>>>>>>>>>>>>> Is it a publicly visible IP accessible from the device? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Monday, March 8, 2021 at 8:35:52 PM UTC+2 >>>>>>>>>>>>>>> [email protected] wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Yes, the site is https. To make sure, I tested it using the >>>>>>>>>>>>>>>> Qualys ssl checker and I access it with the https:// prefix. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> --Dennis >>>>>>>>>>>>>>>> On Sunday, March 7, 2021 at 9:42:05 PM UTC-5 Shai Almog >>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I meant the Rest class. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Sorry I neglected to ask something basic. Is the URL HTTPS? >>>>>>>>>>>>>>>>> If not iOS will fail by default. You can use this as a >>>>>>>>>>>>>>>>> workaround: >>>>>>>>>>>>>>>>> https://www.codenameone.com/blog/ios-http-urls.html >>>>>>>>>>>>>>>>> On Sunday, March 7, 2021 at 7:13:46 PM UTC+2 >>>>>>>>>>>>>>>>> [email protected] wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Yes I'm using codename1.io.URL. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Sunday, March 7, 2021 at 11:46:23 AM UTC-5 Dennis >>>>>>>>>>>>>>>>>> Rogers wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Sorry but I'm still having problems. I tried using >>>>>>>>>>>>>>>>>>> unbuffered IO but with the same result (works on the >>>>>>>>>>>>>>>>>>> simulator but not on >>>>>>>>>>>>>>>>>>> the device). Also the code I sent you was followed by: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> // Get buffered Input stream >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> is = link.getInputStream(); >>>>>>>>>>>>>>>>>>> BufferedInputStream binp = new BufferedInputStream(is); >>>>>>>>>>>>>>>>>>> // Get reply >>>>>>>>>>>>>>>>>>> String ans = readLine(binp); >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> which I think would qualify as asking for a response >>>>>>>>>>>>>>>>>>> from the server. BTW this is all being done on a separate >>>>>>>>>>>>>>>>>>> thread. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> I'm learning about the REST protocol but think this >>>>>>>>>>>>>>>>>>> should work. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> -Dennis >>>>>>>>>>>>>>>>>>> On Saturday, March 6, 2021 at 9:32:02 PM UTC-5 Shai >>>>>>>>>>>>>>>>>>> Almog wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Are you using com.codenameone.io.URL ? >>>>>>>>>>>>>>>>>>>> I would recommend avoiding BufferedOutputStream in >>>>>>>>>>>>>>>>>>>> Codename One as all streams are buffered by default in >>>>>>>>>>>>>>>>>>>> Codename One. >>>>>>>>>>>>>>>>>>>> You also need to fetch the result for the request to >>>>>>>>>>>>>>>>>>>> finish. It won't happen until you try to get a response >>>>>>>>>>>>>>>>>>>> from the server. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> I would recommend using APIs like the "Rest" API which >>>>>>>>>>>>>>>>>>>> is simpler to use and doesn't require threading. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On Saturday, March 6, 2021 at 11:24:53 PM UTC+2 >>>>>>>>>>>>>>>>>>>> [email protected] wrote: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> I have the following code that I use to send an email >>>>>>>>>>>>>>>>>>>>> and password to my server. It works fine on the simulator >>>>>>>>>>>>>>>>>>>>> but fails on an >>>>>>>>>>>>>>>>>>>>> actual iphone (I receive a blank email and password): >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> try { >>>>>>>>>>>>>>>>>>>>> URL url = new URL(*"server address"*); >>>>>>>>>>>>>>>>>>>>> link = url.openConnection(); >>>>>>>>>>>>>>>>>>>>> link.setDoOutput(true); >>>>>>>>>>>>>>>>>>>>> link.setDoInput(true); >>>>>>>>>>>>>>>>>>>>> } catch(URISyntaxException e) { >>>>>>>>>>>>>>>>>>>>> Log.p("URL error"); >>>>>>>>>>>>>>>>>>>>> Log.e(e); >>>>>>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>>>>>> // Get buffered output stream >>>>>>>>>>>>>>>>>>>>> os = link.getOutputStream(); >>>>>>>>>>>>>>>>>>>>> BufferedOutputStream bout = new >>>>>>>>>>>>>>>>>>>>> BufferedOutputStream(os); >>>>>>>>>>>>>>>>>>>>> // Send email and hashed Password >>>>>>>>>>>>>>>>>>>>> bout.write((nemail + "\n").getBytes()); >>>>>>>>>>>>>>>>>>>>> pwHash = getHash(nemail + npasswd); >>>>>>>>>>>>>>>>>>>>> bout.write((pwHash + "\n").getBytes()); >>>>>>>>>>>>>>>>>>>>> bout.flush(); >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Thanks, Dennis >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> -- You received this message because you are subscribed to the Google Groups "CodenameOne Discussions" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/codenameone-discussions/1b256fe9-ac90-4f90-b404-e035183fa6bdn%40googlegroups.com.
