Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中使用PHP restful web服务?_Android - Fatal编程技术网

如何在android中使用PHP restful web服务?

如何在android中使用PHP restful web服务?,android,Android,我正面临一个大问题,请帮助我。 我用php成功地准备了一个restful web服务,但是当我从我的register片段调用他时,它没有工作你能用一个例子详细说明一下吗? package jiji.app_forma_pro.view; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.app.Progre

我正面临一个大问题,请帮助我。
我用php成功地准备了一个restful web服务,但是当我从我的register片段调用他时,它没有工作

你能用一个例子详细说明一下吗?
package jiji.app_forma_pro.view;

import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;

import org.json.JSONException;
import org.json.JSONObject;

import jiji.app_forma_pro.R;
import jiji.app_forma_pro.controller.Controler;

/**
 * Created by jiji on 12/05/2017.
 */

public class RegisterFragment extends Fragment {
    ProgressDialog progressDialog;
    TextView errorMsg;
    EditText reg_email;
    EditText reg_password;
    EditText reg_password_confirm;
    Button btnRegister;
    TextView loginScreen;
    public RegisterFragment() {
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        getActivity().setTitle("Inscription");
        final View rootView = inflater.inflate( R.layout.activity_register, container, false);
        // Set view to register.xml
        reg_email = (EditText) rootView.findViewById(R.id.reg_email);
        reg_password = (EditText) rootView.findViewById(R.id.reg_password);
        reg_password_confirm = (EditText) rootView.findViewById(R.id.reg_password_confirm);
        progressDialog = new ProgressDialog(rootView.getContext());
        progressDialog.setMessage("Veillez patientez..");
        progressDialog.setCancelable(false);
        btnRegister = (Button) rootView.findViewById(R.id.btn_Register);
        loginScreen = (TextView) rootView.findViewById(R.id.link_to_login);

        btnRegister.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v) {

                // On récupère les valeurs et on les convertit en string
                String email = reg_email.getText().toString();
                String password = reg_password.getText().toString();
                String password_confirm = reg_password_confirm.getText().toString();
                RequestParams params = new RequestParams();
                // On teste si les champs login et password sont vides
                if (Controler.isNotNull(email) && Controler.isNotNull(password) && Controler.isNotNull(password_confirm)) {
                    if (Controler.validate(email)) {
                        params.put("username", email);
                        params.put("password", password);
                        params.put("password_confirm", password_confirm);
                        invokeWS(params);
                    } else {
                        Toast.makeText(v.getContext(), "Veillez entrer un email valide!!!", Toast.LENGTH_LONG).show();
                    }
                } else {
                    Toast.makeText(v.getContext(), "Veillez remplir tous les champs!!!", Toast.LENGTH_LONG).show();
                }
            }

            private void invokeWS(RequestParams params) {
                progressDialog.show();
                // Make restfull webservice call using AsyncHttpClient object
                AsyncHttpClient client = new AsyncHttpClient();
                client.get("http://127.0.0.1/webservice_formapro/client.php", params, new AsyncHttpResponseHandler(){
                    //when the response returned by REST has Http response code '200'
                    public void onSuccess(String response){
                        progressDialog.hide();
                        try {

                            //JSON Object
                            JSONObject obj = new JSONObject(response);
                            //when the json response has status boolean value assignedwith true
                            if (obj.getBoolean("status")) {
                                setDefaultValues();
                                Toast.makeText(rootView.getContext(), "succes d'inscription", Toast.LENGTH_LONG).show();

                            } else {
                                errorMsg.setText(obj.getString("error_msg"));
                                Toast.makeText(rootView.getContext(), obj.getString("error_msg"), Toast.LENGTH_LONG).show();
                            }
                        } catch (JSONException e) {
                            Context context = rootView.getContext();
                            CharSequence text = "Error Occured [server's JSON response might be invalid]!.";
                            int duration = Toast.LENGTH_LONG;
                            Toast.makeText(context, text, duration).show();
                            e.printStackTrace();
                        }
                    }
                    // when the response returned by REST has Http response code other than '200'
                    public void onFailure(int statusCode, Throwable error, String content){
                        progressDialog.hide();
                        if (statusCode == 404) {
                            Toast.makeText(getView().getContext(), "Requested ressource not found", Toast.LENGTH_LONG).show();
                        } else if (statusCode == 500) {
                            Toast.makeText(getView().getContext(), "something went wrong at server end", Toast.LENGTH_LONG).show();
                        } else {
                            Toast.makeText(getView().getContext(), "Unexpected Error occured! [Most common error: Device might not be connected to Internet or remote server is not up and running]", Toast.LENGTH_LONG).show();
                        }
                    }
                });
            }

        });
        loginScreen.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v) {

                Fragment Login;
                Login = new LoginFragment();

                FragmentManager manager = getFragmentManager();
                FragmentTransaction transaction = manager.beginTransaction();
                transaction.replace(R.id.content_main,Login);
                transaction.addToBackStack(null);
                transaction.commit();
            }
        });
return rootView;
    }
private void setDefaultValues() {
    reg_email.setText("");
    reg_password.setText("");
    reg_password_confirm.setText("");
    }
}
    this is my register web service:
    <?php
    require_once('lib/nusoap.php');
    include ('connexion.php');
    $server = new nusoap_server();
    $ns='http://localhost/webservice_formapro/';
    //$ns='urn:webservice_formapro';
    $server->configureWSDL('webservice_formapro ', $ns);
    $server->xml_encoding = "utf-8";
    $server->soap_defencoding = "utf-8";

    //$server->wsdl->schemaTargetNamespace =$ns;

    //------------  Créer Compte ---------------
    $server->register('creecompte', // method name
                array('login' => 'xsd:string','pwd'=>'xsd:string'), // input parameters
                array('retour' => 'xsd:string'), // output parameters
                $ns, // namespace
                //$ns.'/bibliotheque'
                $ns.'#creecompte', // soapaction
                'rpc', // style
                'literal', // use
                'creer un compte' // documentation
                );
/**************web service *****************/ 
/*---------------------------------------- */

//------------  Créer Compte ---------------
////////////////////////////////////////////
function creecompte($ref,$login,$pwd)
{
  $sql=("insert into client(ref,login,mdp) values('".$ref."','".$login."','".$pwd."')");
  if (!mysql_query($sql))
  {
    return new soapval('retour', 'xsd:string', "no" ); 
  }

  $sql2=mysql_query("select * from client where client.login='".$login."' and client.mdp = '".$pwd."'")or die(mysql_error());   
  while($row2=mysql_fetch_assoc($sql2))
  {
    $id=$row2['idclient'];
  }
  return new soapval('retour', 'xsd:string', "yes" ); 
}