No problem!
On Tuesday, March 16, 2021 at 11:03:16 PM UTC-4 Shai Almog wrote: > I'll look into it. It works in the simulator but I have a couple of issues > with my environment so it will take me. a couple of days to reproduce it on > a device. > > On Tuesday, March 16, 2021 at 11:37:29 PM UTC+2 [email protected] wrote: > >> >> 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/c6a1e7f4-0888-4ca4-a78e-4d6ad816cac2n%40googlegroups.com.
