I was able to run it and got a NOK from the server. The question is what 
did the server get?
Can your server deal with chunked requests?
gzip?

On Wednesday, March 17, 2021 at 7:28:48 AM UTC+2 [email protected] wrote:

> 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/e9c296d4-51fa-4f4c-975a-49d3338f54f9n%40googlegroups.com.

Reply via email to