J2ME zczytywanie wartosci z POST

0

pod zmienna "data" jest klucz => wartosc tego co chce przeslac poprzez metode POST do skryptu PHP o zamieszczonym URLu. Niestety funkcja PHP:

var_dump($_POST);

zwraca

array(0) { }

czyli nie odbiera nic..

oto kod programu, niestety nie wiem czemu dane nie zostaja przeslane


package hello;

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

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author bart
 */
public class urlPost {

    public void metoda() {
        
    try {
        // Construct data
        String data = "key=value";
        // Send data
        HttpConnection sc = (HttpConnection) Connector.open("http://kolos.math.uni.lodz.pl/~bart/proc.php");
        OutputStream is = sc.openOutputStream();
        OutputStreamWriter wr = new OutputStreamWriter(is);
        wr.write(data);
        wr.flush();
    
        // Get the response
        Reader rd = new InputStreamReader(sc.openDataInputStream());
        String str = new String();
        int chr;
        
        while ((chr = rd.read()) != -1) {
            str += (char)chr;
        }

        System.out.println(str);
        
        wr.close();
        rd.close();
    } catch (Exception e) {
    }
    
    }
    
}

0

http://www.javaworld.com/javatips/jw-javatip34.html?page=1 - może to Ci pomoże.

A jak nie to dajesz przez socket: http://jug.org.ua/wiki/display/JavaAlmanac/Sending+a+POST+Request+Using+a+Socket

Generalnie powinieneś zamknąć strumień wyjściowy zaraz po wysłaniu POSTa, inaczej strona odbierająca będzie czekać z odpowiedzią i flush nic tutaj nie zmieni.

Pozdrawiam,

0

dzieki za odp, sprawdze ten link,
z socketami jest problem bo nie ma ich w midp 1.0 a tu chodzi o to zeby bylo kompatybilne wstecz

0

niestety po takich zmianach jak nizej mam dalej zwracana pusta tablice $_POST...

public class urlPost {

    public void metoda() {
        
        try {
            // Construct data
            String data = "key=value\r\n";
            // Send data
            HttpConnection sc = (HttpConnection) Connector.open("http://kolos.math.uni.lodz.pl/~bart/proc.php");
            sc.setRequestMethod(HttpConnection.POST);
            sc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            DataOutputStream  printout = new DataOutputStream(sc.openOutputStream());
            printout.writeChars(data);
            printout.flush ();
            printout.close ();
            
            
            DataInputStream input = new DataInputStream(sc.openInputStream());
            int str;
            String string = new String();

            while (-1 != ((str = (int) input.read()))) {
                string += (char) str;
            }

            System.out.println(string);

            input.close();
        } catch (Exception e) {
        }
    
    }
    
}
0
  1. wszystkie netowe sprawy w j2me - w nowym watku!
  2. komorki roznie reaguja na takie rzeczy (sprawdzaj na sony ericssonach najlepiej k750 i pochodnych)
  3. ad2. mozesz tez na emu SE
0

ja sprawdzam caly czas na emulatorze... :|

1 użytkowników online, w tym zalogowanych: 0, gości: 1