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.

Reply via email to