Newer
Older
GpsTracker / phoneClients / javaMe / src / com / websmithing / gpstracker / NetWorker.java
@Nick Fox Nick Fox on 26 Sep 2014 2 KB changed javame back to GET request
//
//  NetWorker.java
//  GpsTracker
//
//  Created by Nick Fox on 11/7/13.
//  Copyright (c) 2013 Nick Fox. All rights reserved.
//

package com.websmithing.gpstracker;

import javax.microedition.io.*;
import java.io.*;

public class NetWorker {
    private GpsTracker midlet;
    private String uploadWebsite;
    int i = 1;
    
    public NetWorker(GpsTracker lbsMidlet, String UploadWebsite){
	this.midlet = lbsMidlet;
        this.uploadWebsite = UploadWebsite;
    }   

  public void postGpsData(String queryString) { 
        queryString = urlEncodeString(queryString);
        HttpConnection httpConnection = null;
        DataOutputStream dataOutputStream = null;

        try{
            httpConnection = (HttpConnection)Connector.open(uploadWebsite);
            httpConnection.setRequestMethod(HttpConnection.GET);
            httpConnection.setRequestProperty("User-Agent", "Profile/MIDP-1.0 Configuration/CLDC-1.0");
            httpConnection.setRequestProperty("Content-Language", "en-US");
            httpConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            httpConnection.setRequestProperty("Content-Length", String.valueOf(queryString.length())); 
            
            dataOutputStream = new DataOutputStream(httpConnection.openOutputStream());
            dataOutputStream.write(queryString.getBytes());
            
            // some mobile devices have unexpected behavior with flush(), test before using
            //dataOutputStream.flush();

            if(httpConnection.getResponseCode() != HttpConnection.HTTP_OK){
                 midlet.log("NetWorker.postGpsData responseCode: " + httpConnection.getResponseCode());
            }
        } catch (Exception e) {
           midlet.log("NetWorker.postGpsData error: " + e);
        }
        finally{ // clean up
            try{
                if(httpConnection != null)
                    httpConnection.close();
                if(dataOutputStream != null)
                    dataOutputStream.close();
             }
            catch(Exception e){}
        }
    }    
  
    private String urlEncodeString(String s)
    {
        if (s != null) {
            StringBuffer tmp = new StringBuffer();
            int i = 0;
            try {
                while (true) {
                    int b = (int)s.charAt(i++);

                    if (b != 0x20) {
                        tmp.append((char)b); 
                    }
                    else {
                        tmp.append("%");
                        if (b <= 0xf) { 
                            tmp.append("0");
                        }
                        tmp.append(Integer.toHexString(b));  
                    }
                }
            }
            catch (Exception e) {}
            return tmp.toString();
        }
        return null;
    }   
}