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.

Reply via email to