If you are experiencing an issue please mention the full platform your 
issue applies to:
IDE: NetBeans
Desktop OS Windows 10
Simulator Android/iOS
Device Android/iOS

I am able to get authentication to work with connection request. I am 
having to get header information and then in another part of the app, send 
that same information back to the cgi-bin. Below is my code and I commented 
on the parts where I believe I need to do something with a header and or 
cookie. I'm very new to this and It's been difficult finding even a basic 
header/cookie tutorial.

/**
 * Your application code goes here<br>
 * This file was generated by <a 
href="https://www.codenameone.com/";>Codename One</a> for the purpose 
 * of building native mobile applications using Java.
 */


package userclasses;

import com.codename1.io.ConnectionRequest;
import com.codename1.io.Cookie;
import com.codename1.io.NetworkEvent;
import com.codename1.io.NetworkManager;
import com.codename1.io.Storage;
import com.codename1.notifications.LocalNotification;
import generated.StateMachineBase;
import com.codename1.ui.*; 
import com.codename1.ui.events.*;
import com.codename1.ui.util.Resources;


import java.util.Timer;
import java.util.TimerTask;
//import org.apache.commons.httpclient.UsernamePasswordCredentials;
//import org.apache.commons.httpclient.auth.AuthScope;

/**
 *
 * @John Barrett
 */
public class StateMachine extends StateMachineBase {
    public StateMachine(String resFile) {
        super(resFile);
        // do not modify, write code in initVars and initialize class 
members there,
        // the constructor might be invoked too late due to race conditions 
that might occur
    }
    
    /**
     * this method should be used to initialize variables instead of
     * the constructor/class scope to avoid race conditions
     */
    protected void initVars(Resources res) {
    }
    boolean stop = false;
    boolean notify = false;
    String OnOff;
    
    
    @Override // Starts monitor action.
    protected void onMain_ButtonAction(Component c, ActionEvent event){
        
        // starts a timer to repeat monitor every minute.
        Timer timer = new Timer();
        String text = (String) 
Storage.getInstance().readObject("SavedData");
        
        timer.schedule( new TimerTask(){
        
                    
        @Override
        public void run(){       
        if (stop == true){
            cancel();//Monitor ends           
        } 
        
        //Starts a connection with the URL to monitor
        ConnectionRequest r = new ConnectionRequest();
        
r.setUrl("http://vault.infinitevault.com/cgi-bin/absentmedia?customer="; + 
text.toLowerCase().trim());
        r.setPost(true);
        
        // Post Header/Cookie information to URL for access NEED HELP WITH 
THIS!
        r.setHttpMethod("HEAD");
        r.setContentType("text/xml");
        r.setCookiesEnabled(true);
        findCodeLabel(c).setText("Monitoring: " + text.toUpperCase());
        r.addResponseListener(new ActionListener(){

        @Override
        public void actionPerformed(ActionEvent ev){
            
                
                        
                        // Monitor starts 
                        try{
                            
                        NetworkEvent event = (NetworkEvent) ev;
                        // Need to post header/cookie information here? 
HELP!
                        Cookie.isAutoStored();
                        byte[] data= (byte[]) event.getMetaData();
                        String decodedData = new String(data,"UTF-8");     
                      
                            
                        boolean none;
                        
                        none = decodedData.endsWith("NONE\n");
                                           
                    
                        if (!none){                           
                            
                            
                            
                        System.out.println(decodedData);                   
         
                            
                            findCodeTextArea(c).setText(decodedData);
                                                                            
       
                            LocalNotification n = new LocalNotification();
                            n.setId("OSStorage");
                            n.setAlertBody(decodedData);
                            n.setAlertTitle("Absent Media");                

                            Display.getInstance().scheduleLocalNotification(
                                    n,
                                    System.currentTimeMillis() + 10 * 1000, 
// fire date/time
                                    LocalNotification.REPEAT_MINUTE  // 
Whether to repeat and what frequency
                            );

                            if (notify != true){
                                Display.getInstance().vibrate(5000);
                            } 
                            
Storage.getInstance().writeObject("MonitorData", decodedData);
                        }
                        else{
                    System.out.println("None");
                            findCodeTextArea(c).setText("System is Good");
                        }
                        } 
                        catch (Exception ex){
                            ex.printStackTrace();
                        }              
                            
        }
         
        }); 
                
        NetworkManager.getInstance().addToQueue(r);       
        
        }
        
        }, 0, 60*1000);
        
    }   

    @Override // Stops the monitoring action.
    protected void onMain_StopButtonAction(Component c, ActionEvent event) {
        super.onMain_StopButtonAction(c, event);//To change body of 
generated methods, choose Tools | Templates.
        stop = true;
        
        findCodeLabel(c).setText("Monitor Stopped");
        findCodeTextArea(c).setText("");
        findCodeTextArea(c).setHint("System information will show here");   
    
        Storage.getInstance().deleteStorageFile("MonitorData");
        
    }
    

    @Override // Saves the settings to storage.
    protected void onSettings_SetSaveAction(Component c, ActionEvent event) 
{
               
        String Station = findSetStation(c).getText();
            
        Storage.getInstance().writeObject("SavedData", Station);
        String LoadStation = (String) 
Storage.getInstance().readObject("SavedData");
        findStationLabel(c).setText("Saved Station is " + LoadStation);
        
        
    }

    @Override // Sets what is saved to appear when in settings.
    protected void beforeSettings(Form f) {
                
        String LoadStation = (String) 
Storage.getInstance().readObject("SavedData");
        findStationLabel(f).setText("Saved Station is " + LoadStation);
        findSetStation(f).setText(LoadStation);
        
        String CurrentNotify = (String) 
Storage.getInstance().readObject("OnOff");
        findSetNotifyLabel(f).setText("Vibration is " + CurrentNotify);
    }

    

    @Override // Sets what is saved to appear when in monitor screen.
    protected void beforeMain(Form f) {
        String LoadStation = (String) 
Storage.getInstance().readObject("SavedData");
        findCodeLabel(f).setText(LoadStation);
        if (findCodeTextArea(f) != null){
            String foundData = (String) 
Storage.getInstance().readObject("MonitorData");
            findCodeTextArea(f).setText(foundData);
                       
            
            
        }
    
    }

    

    @Override // Sets notification for turning vibration on.
    protected void onSettings_SetNotifyOnAction(Component c, ActionEvent 
event) {
        notify = false;
        OnOff = "ON";
        Storage.getInstance().writeObject("NotifyOn", notify);
        Storage.getInstance().writeObject("OnOff", OnOff);
        findSetNotifyLabel(c).setText("Vibration is " + OnOff);
        
    }
    

    @Override // Sets notification for turning vibration off.
    protected void onSettings_SetNotifyOffAction(Component c, ActionEvent 
event) {
        notify = true;
        OnOff = "OFF";
        Storage.getInstance().writeObject("NotifyOn", notify);
        Storage.getInstance().writeObject("OnOff", OnOff);
        findSetNotifyLabel(c).setText("Vibration is " + OnOff);
        
    }
    

    @Override // Sets message for monitoring or not.
    protected void beforeStartPage(Form f) {
    Storage.getInstance().deleteStorageFile("MonitorData");
    String LoadStation = (String) 
Storage.getInstance().readObject("SavedData");
    
    
    }

    @Override // Login button pressed after entering username and password.
    protected void onLogin_LoginAction(Component c, ActionEvent event) {
    
    // Gets the username and password entered.
    String userName = findUsename().getText();
    String passWord = findPassword().getText();
    
    // Establishes a conneciton to authentication.
    ConnectionRequest req=new ConnectionRequest();
    req.setPost(false);
        
    req.setUrl("http://authentication.infinitevault.com/validate.php";);
    
    req.addArgument("username",userName);
    req.addArgument("password",passWord);
    req.addArgument("grant_type","client_credentials");
    
    // To get the Header/Cookie information.
    req.getHttpMethod();
    req.setCookiesEnabled(true);
    
    Cookie.setAutoStored(true);
    Cookie.isAutoStored();
    
    // Sends message to user that system is verifying.
    findDenied(c).setText("Verifying");
    
    NetworkManager.getInstance().addToQueueAndWait(req);
    
    if (req.getResponseData() != null) {
        String token = new String(req.getResponseData());
        token = token.substring(token.indexOf('=') + 1);
        System.out.println(token);
        
        // Checks credentials if response is denied, goes back, 
        // If response is authenticated goes to main monitor form.
        if (token.endsWith("denied")){
            
            
            /*try {
            Thread.sleep(2000);                 //1000 milliseconds is one 
second.
            } catch(InterruptedException e) {
            Thread.currentThread().interrupt();
            }*/
            
            back();
         
        }
        else {
            showForm("Main",null);
        }
       
    }
           
        
     
    
    }
    
    
    
    
    
    

    
    
}//end of app

-- 
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].
Visit this group at https://groups.google.com/group/codenameone-discussions.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/codenameone-discussions/c7dda023-d6de-4a4f-98bf-a0440223c426%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to