如何在Web服务中发送电话号码并在android中接收请求

时间:2015-10-16 09:15:35

标签: java android androidhttpclient

我在发送数据时遇到麻烦,通过http客户端发布方法。我想将任何电话号码发送到网络服务并接收请求。

这是我的SignUp.java: -

public class SignUp extends AppCompatActivity implements View.OnClickListener {

TextView tv;
Button sign_up;
EditText et;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.sign_up);

    tv = (TextView)findViewById(R.id.sign_up);
    sign_up = (Button)findViewById(R.id.login_buttton);
    et = (EditText)findViewById(R.id.sign_up_editText);

    tv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(SignUp.this, LoginActivity.class);
            startActivity(intent);
        }
    });

    sign_up.setOnClickListener(this);
}
public void onClick(View v){

    validateForm();

/*     if(et.getText().toString().isEmpty()){
        Toast.makeText(SignUp.this,"Please Fill Contect Nuumber",Toast.LENGTH_LONG).show();
    }
    else{
        postSignUpData();
    }*/
}

public void postSignUpData(){
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();

}
private static boolean isValidPhoneNumber(String mobile) {
    String regEx = "^[0-9]{10}$";
    return mobile.matches(regEx);
}
private void  validateForm(){
    String mobile = et.getText().toString();

    if(isValidPhoneNumber(mobile)){
        requestForSMS();
    }
    else {
        Toast.makeText(SignUp.this,"Please enter valid mobile number",Toast.LENGTH_LONG).show();
    }
}

private void requestForSMS(){

    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://opencart.codeniques.com/shopping/?route=feed/web_api/registertele&key=test123$");
    try{
        List<NameValuePair> nameValuePairs = new ArrayList<>(1);
        nameValuePairs.add(new BasicNameValuePair("number",et.getText().toString()));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        HttpResponse response = httpclient.execute(httppost);
        int status = response.getStatusLine().getStatusCode();
        if(status==200){
            HttpEntity entity = response.getEntity();
            String data = EntityUtils.toString(entity);

            JSONObject jsonObject = new JSONObject(data);
            Toast.makeText(SignUp.this,"Value of json object"+jsonObject,Toast.LENGTH_LONG).show();
        }
        else{
            Toast.makeText(SignUp.this,"GO to else",Toast.LENGTH_LONG).show();
        }
        //String str = inputStreamToString(response.getEntity().getContent()).toString();
    //    Toast.makeText(SignUp.this,"Str value "+str,Toast.LENGTH_LONG).show();
       // HttpResponse response = httpclient.execute(httppost);
    }catch (IOException |JSONException e){
        Log.e("Error :",e.getMessage() );
    }
}
private StringBuilder inputStreamToString(InputStream is){
    String line = "";
    StringBuilder total = new StringBuilder();
    // Wrap a BufferedReader around the InputStream
    BufferedReader rd = new BufferedReader(new InputStreamReader(is));
    // Read response until the end
    try {
        while ((line = rd.readLine()) != null) {
            total.append(line);
        }
    } catch (IOException  e) {
        e.printStackTrace();
    }
    // Return full string
    return total;
}

}

Here is a url for my web service

这里是我的Logcat: -

   E/AndroidRuntime:     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1273)
10-16 15:02:08.189 7560-7560/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at java.net.InetAddress.lookupHostByName(InetAddress.java:431)
10-16 15:02:08.189 7560-7560/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
10-16 15:02:08.189 7560-7560/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at java.net.InetAddress.getAllByName(InetAddress.java:215)
10-16 15:02:08.189 7560-7560/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:142)

    E/AndroidRuntime:     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:169)
10-16 14:24:44.827 7739-7739/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:124)
10-16 14:24:44.827 7739-7739/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:366)
10-16 14:24:44.827 7739-7739/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:560)
10-16 14:24:44.827 7739-7739/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:492)
10-16 14:24:44.827 7739-7739/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:470)
10-16 14:24:44.827 7739-7739/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at shoppingmazza.android.catalyst.com.dynamiclayout.SignUp.requestForSMS(SignUp.java:102)
10-16 14:24:44.827 7739-7739/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at shoppingmazza.android.catalyst.com.dynamiclayout.SignUp.validateForm(SignUp.java:86)
10-16 14:24:44.827 7739-7739/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at shoppingmazza.android.catalyst.com.dynamiclayout.SignUp.onClick(SignUp.java:63)
10-16 14:24:44.827 7739-7739/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at android.view.View.performClick(View.java:5198)
10-16 14:24:44.827 7739-7739/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at android.view.View$PerformClick.run(View.java:21147)
10-16 14:24:44.827 7739-7739/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:739)
10-16 14:24:44.827 7739-7739/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:95)
10-16 14:24:44.827 7739-7739/shoppingmazza.android.catalyst.com.dynamiclayout E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:148)

我事先是新的android.Please Help.Thanks is advance

1 个答案:

答案 0 :(得分:0)

你的代码没有问题。你正在使用min api level 2.3等。因为你需要在asynctask中进行网络操作或者在代码之前使用以下代码以避免异常

if (android.os.Build.VERSION.SDK_INT > 9) {
    StrictMode.ThreadPolicy policy = 
    new StrictMode.ThreadPolicy.Builder().permitAll().build();      
        StrictMode.setThreadPolicy(policy);
 }