Blackberry - Как использовать службы отдыха wcf

Недавно я начал работать над использованием веб-сервисов wcf rest в Blackberry.

Я использовал следующие два кода:

1. URLEncodedPostData postData = new URLEncodedPostData(URLEncodedPostData.DEFAULT_CHARSET, false); // передача значения q и значения ie

postData.append("UserName", "[email protected]");
postData.append("Password", "mind@123");
HttpPosst hh=new HttpPosst();
add(new LabelField("1"));
String res=hh.GetResponse("http://dotnetstg.seasiaconsulting.com/profire/ProfireService.svc/UserRegistration",postData);
add(new LabelField("2"));
add(new LabelField(res));

общедоступная строка GetResponse (URL-адрес строки, данные URLEncodedPostData) {

    this._postData = data;
    this._url = url;

    ConnectionFactory conFactory = new ConnectionFactory();
    ConnectionDescriptor conDesc = null;

    try 
    {
        if (WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED)
        {

            connectionString = ";interface=wifi";

        }

        // Is the carrier network the only way to connect?
        else if ((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_DIRECT) == CoverageInfo.COVERAGE_DIRECT) {
            // logMessage("Carrier coverage.");

            // String carrierUid = getCarrierBIBSUid();

            // Has carrier coverage, but not BIBS. So use the carrier's TCP
            // network
            // logMessage("No Uid");
            connectionString = ";deviceside=true";

        }

        // Check for an MDS connection instead (BlackBerry Enterprise
        // Server)
        else if ((CoverageInfo.getCoverageStatus() & CoverageInfo.COVERAGE_MDS) == CoverageInfo.COVERAGE_MDS) {
            // logMessage("MDS coverage found");

            connectionString = ";deviceside=false";

        }

        // If there is no connection available abort to avoid bugging the
        // user
        // unnecssarily.
        else if (CoverageInfo.getCoverageStatus() == CoverageInfo.COVERAGE_NONE)
        {
            // logMessage("There is no available connection.");

        }

        // In theory, all bases are covered so this shouldn't be reachable.
        else {
            // logMessage("no other options found, assuming device.");
            // connectionString = ";deviceside=true";
        }
        conDesc = conFactory.getConnection(url + connectionString);
    } 
    catch (Exception e) 
    {
        System.out.println(e.toString() + ":" + e.getMessage());
    }

    String response = ""; // this variable used for the server response
    // if we can get the connection descriptor from ConnectionFactory
    if (null != conDesc) 
    {
        try 
        {

            HttpConnection connection = (HttpConnection) conDesc.getConnection();
            // set the header property
            connection.setRequestMethod(HttpConnection.POST);

            connection.setRequestProperty("Content-Length",Integer.toString(data.size()));
            // body content of
            // post data
            connection.setRequestProperty("Connection", "close");
            // close
            // the
            // connection
            // after
            // success
            // sending
            // request
            // and
            // receiving
            // response
            // from
            // the
            // server
            connection.setRequestProperty("Content-Type","application/json");
            // we set the
            // content of
            // this request
            // as
            // application/x-www-form-urlencoded,
            // because the
            // post data is
            // encoded as
            // form-urlencoded(if
            // you print the
            // post data
            // string, it
            // will be like
            // this ->
            // q=remoQte&ie=UTF-8).

            // now it is time to write the post data into OutputStream
            OutputStream out = connection.openOutputStream();
            out.write(data.getBytes());
            out.flush();
            out.close();

            int responseCode = connection.getResponseCode();
            // when this
            // code is
            // called,
            // the post
            // data
            // request
            // will be
            // send to
            // server,
            // and after
            // that we
            // can read
            // the
            // response
            // from the
            // server if
            // the
            // response
            // code is
            // 200 (HTTP
            // OK).
            if (responseCode == HttpConnection.HTTP_OK) 
            {
                // read the response from the server, if the response is
                // ascii character, you can use this following code,
                // otherwise, you must use array of byte instead of String
                InputStream in = connection.openInputStream();
                StringBuffer buf = new StringBuffer();
                int read = -1;
                while ((read = in.read()) != -1)
                buf.append((char) read);
                response = buf.toString();

            }

            // don’t forget to close the connection
            connection.close();

        }
        catch (Exception e) 
        {
            System.out.println(e.toString() + ":" + e.getMessage());
        }

    }
    return response;
}

public boolean checkResponse(String res)
{
     if(!res.equals(""))
     {


    if(res.charAt(0)=='{')
    {
        return true;
    }
    else
    {
        return false;

    }
     }
     else
     {
         return false;
     }

}

но с этим кодом я не могу получить ответ, как то, что возвращает вышеуказанная веб-служба wcf ({"UserRegistrationResult":[{"OutputCode":"2","OutputDescription":"Имя пользователя уже существует."}]})

Может ли кто-нибудь помочь мне в его анализе в конце клиента ежевики.

2. И еще один код, который я использовал:

открытый класс KSoapDemo расширяет MainScreen {

private EditField userNametxt;
private PasswordEditField passwordTxt;
private ButtonField loginBtn;
String Username;
String Password;

public KSoapDemo() 
{

    userNametxt = new EditField("User Name : ", "[email protected]");
    passwordTxt = new PasswordEditField("Password : ", "mind@123");
    loginBtn = new ButtonField("Login");

    add(userNametxt);
    add(passwordTxt);
    add(loginBtn);

    loginBtn.setChangeListener(new FieldChangeListener() 
    {

        public void fieldChanged(Field field, int context)
        {
            //Dialog.alert("Hi Satyaseshu..!");
            login();
        }
    });
}

private void login() 
{
    if (userNametxt.getTextLength() == 0 || passwordTxt.getTextLength() == 0)
    {
        //Dialog.alert("You must enter a username and password", );
    } 
    else 
    {
        String username = userNametxt.getText();
        String password = passwordTxt.getText();
        System.out.println("UserName... " + username);
        System.out.println("Password... " + password);
        boolean value = loginPArse1(username, password);
        add(new LabelField("value... " + value));
    }
}

public boolean onClose()
{
    Dialog.alert("ADIOOO!!");
    System.exit(0);
    return true;
}



public boolean loginPArse1(String username, String password) 
{

    username=this.Username;
    password=this.Password;
    boolean ans = false;
    String result = null;
    SoapObject request = new SoapObject("http://dotnetstg.seasiaconsulting.com/","UserRegistration"); 
    //request.addProperty("PowerValue","1000"); 
    //request.addProperty("fromPowerUnit","kilowatts"); 
    //request.addProperty("toPowerUnit","megawatts"); 
    request.addProperty("userName",Username);
    request.addProperty("Password", Password);

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.bodyOut = request; 
    envelope.dotNet = true;
    add(new LabelField("value... " + "1"));
    HttpTransport ht = new HttpTransport("http://dotnetstg.seasiaconsulting.com/profire/ProfireService.svc/UserRegistration"+ConnectionInfo.getInstance().getConnectionParameters()); 
    ht.debug = true;
    add(new LabelField("value... " + "2"));
    //System.out.println("connectionType is: " + connectionType);
    try { 
    ht.call("http://dotnetstg.seasiaconsulting.com/profire/ProfireService.svc/UserRegistration", envelope); 
    SoapObject body = (SoapObject) envelope.bodyIn;
    add(new LabelField("soap....="+body.toString()));

     add(new LabelField("property count....="+body.getPropertyCount()));

    // add(new LabelField("Result....="+body.getProperty("HelloWorldResult")));
    //result = body.getProperty("Params").toString();
//  add(new LabelField("value... " + "4"));
     ans=true;
    } 
    catch (XmlPullParserException ex) { 
        add(new LabelField("ex1 "+ex.toString()) ); 
    ex.printStackTrace(); 
    } catch (IOException ex) { 
        add(new LabelField("ex1 "+ex.toString()) ); 
    ex.printStackTrace(); 
    } catch (Exception ex) { 
        add(new LabelField("ex1 "+ex.toString()) ); 
    ex.printStackTrace(); 
    }
    return ans; 
    }

и в ответ я получаю ответ как net.rim.device.cldc.io.dns.DNS Exception:DNS Error

Пожалуйста, помогите мне в этом отношении

Спасибо и с уважением Пинкеш Гупта


person Pinkesh Gupta    schedule 30.11.2012    source источник