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/e3c0735f-1ad4-41a2-b4df-066eb7d1fb85n%40googlegroups.com.
