2017-04-10 54 views
1

我是Android开发新手。我必须将Web服务集成到我的应用程序中,但它不起作用。有人可以帮我解决它。如何发送PHP的Web服务HTTP请求

以下是源代码

public class Registration extends Activity { 

EditText edfnm,edlnm,edmobile,edemail,edpass; 
Button b1; 
TextView tv1; 
private DefaultHttpClient httpclient; 
private HttpPost httppost; 
private ArrayList<NameValuePair> lst; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_registration); 
    edfnm=(EditText)findViewById(R.id.edfirst); 
    edlnm=(EditText)findViewById(R.id.edlast); 
    edmobile=(EditText)findViewById(R.id.edmobile); 
    edemail=(EditText)findViewById(R.id.edemail); 
    edpass=(EditText)findViewById(R.id.edpass); 
    b1=(Button)findViewById(R.id.btnreg); 
    tv1=(TextView)findViewById(R.id.textView1); 
    b1.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      httpclient=new DefaultHttpClient(); 
      httppost=new HttpPost("http://amwaveswellness.com/protocol_suggestion/webservice/register.php"); 

      lst=new ArrayList<NameValuePair>(); 

      lst.add(new BasicNameValuePair("first_name",edfnm.getText().toString())); 
      lst.add(new BasicNameValuePair("last_name",edlnm.getText().toString())); 
      lst.add(new BasicNameValuePair("mobile",edmobile.getText().toString())); 
      lst.add(new BasicNameValuePair("email",edemail.getText().toString())); 
      lst.add(new BasicNameValuePair("password",edpass.getText().toString())); 

      try { 
       httppost.setEntity(new UrlEncodedFormEntity(lst)); 
       new add_data().execute(); 
      } catch (UnsupportedEncodingException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
     class add_data extends AsyncTask<String, integer, String>{ 
      String jsonstring; 

      @Override 
      protected void onPreExecute() { 
       // TODO Auto-generated method stub 
       super.onPreExecute(); 
      } 

      @Override 
      protected String doInBackground(String... arg0) { 
       // TODO Auto-generated method stub 
       try { 
        HttpResponse httpresponse=httpclient.execute(httppost); 
        jsonstring=EntityUtils.toString(httpresponse.getEntity()); 
       } catch (ClientProtocolException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
       return jsonstring; 
      } 
      @Override 
      protected void onPostExecute(String result) { 
       // TODO Auto-generated method stub 
       super.onPostExecute(result); 
      tv1.setText(result); 
      Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show(); 
      } 

     } 
    }); 
} 

当我运行此代码返回null性反应

PL告诉我这是怎么回事,如何解决它。

API request sample

+0

我建议你使用OkHttp库。有了这个库,Http请求需要更少的努力。 –

+0

使用齐射进行异步服务器连接 –

+0

尝试此链接http://www.androidhive.info/2012/01/android-json-parsing-tutorial/ –

回答

0

这是一个很好的例子来实现它。

https://www.simplifiedcoding.net/android-volley-tutorial-to-get-json-from-server/

通过它去。

+0

我以{“success”:“1”,“message”:“颈部的所有症状”,“symptoms_data”:[{“id”:“68”,“parts_name”:“Neck Pain&Stiffness” ,“描述”:“颈部疼痛和僵硬”,“症状”:“2”,“图像”:“上传/ 1490950482.jpg”,“状态”:“1”,“创建”:“2017-03-31 14:24:41“,”更新“:”2017-04-08 17:24:24“},那么如何从这个peint消息 –

相关问题