2016-05-12 67 views
1

Android的HTTP從Android的Web數據我有使應用程序從Android發送數據到Web Android應用程序發送數據完成,但我不知道如何在PHP代碼從android中recived數據。 我正在使用xampp服務器的PHP腳本。這是MT應用程序代碼。Android的HTTP後PHP腳本問題

public class Main extends Activity implements OnClickListener{ 

    private EditText value; 
    private Button btn; 
    private ProgressBar pb; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.home_layout); 
     value=(EditText)findViewById(R.id.editText1); 
     btn=(Button)findViewById(R.id.button1); 
     pb=(ProgressBar)findViewById(R.id.progressBar1); 
     pb.setVisibility(View.GONE); 
     btn.setOnClickListener(this); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.home, menu); 
     return true; 
    } 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
      if(value.getText().toString().length()<1){ 

       // out of range 
       Toast.makeText(this, "please enter something", Toast.LENGTH_LONG).show(); 
      }else{ 
       pb.setVisibility(View.VISIBLE); 
       new MyAsyncTask().execute(value.getText().toString());  
      } 


    } 

    private class MyAsyncTask extends AsyncTask<String, Integer, Double>{ 

     @Override 
     protected Double doInBackground(String... params) { 
      // TODO Auto-generated method stub 
      postData(params[0]); 
      return null; 
     } 

     protected void onPostExecute(Double result){ 
      pb.setVisibility(View.GONE); 
      Toast.makeText(getApplicationContext(), "command sent", Toast.LENGTH_LONG).show(); 
     } 
     protected void onProgressUpdate(Integer... progress){ 
      pb.setProgress(progress[0]); 
     } 

     public void postData(String valueIWantToSend) { 
      // Create a new HttpClient and Post Header 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost("http://somewebsite.com/receiver.php"); 

      try { 
       // Add your data 
       List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
       nameValuePairs.add(new BasicNameValuePair("myHttpData", valueIWantToSend)); 
       httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

       // Execute HTTP Post Request 
       HttpResponse response = httpclient.execute(httppost); 

      } catch (ClientProtocolException e) { 
       // TODO Auto-generated catch block 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
      } 
     } 

    } 
} 

這是我的xml文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="20dp" 
     android:text="Enter Something Below:" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/textView1" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="30dp" 
     android:ems="10" 
     android:hint="" 
     > 

     <requestFocus /> 
    </EditText> 

    <ProgressBar 
     android:id="@+id/progressBar1" 
     style="?android:attr/progressBarStyleLarge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/editText1" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="24dp" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/textView1" 
     android:layout_alignRight="@+id/editText1" 
     android:layout_below="@+id/progressBar1" 
     android:layout_marginTop="24dp" 
     android:text="Submit" /> 

</RelativeLayout> 

這是PHP腳本代碼reciver.php

<?php 
// receive data from app's http request 
$data=$_POST["myHttpData"]; 
// write data from my android app to a text file 
file_put_contents('myTextFile.txt',$data); 
?> 

請告訴我怎樣才能讓PHP腳本與正確的代碼

IT展我在php中這樣的錯誤。 enter image description here

回答

0

按照以下步驟

  1. 創建名爲test.php的文件,並在文件複製你的PHP代碼。
  2. 將該文件複製到xamp服務器根文件夾(在WWW目錄中)
  3. 確保您的手機和計算機連接到相同的WiFi路由器,如果是這樣,請複製系統的IP地址。
  4. 複製的IP地址將您的服務器IP。您可能需要執行搜索端口號。
  5. 後上述4個步驟,你最終URL一些這樣的事 http://IP adreas:端口號/ test.php的 例http://192.168.1.1:8080/test.php
  6. 運行您XAMP服務器。
  7. 在您的android http請求中設置此URL。
  8. 尋找錯誤ñ谷歌。
+0

但是當我打開php文件它給了我錯誤我發佈PHP腳本錯誤的屏幕截圖請觀看它。 –

+0

檢查我的問題我編輯它 –

+0

顯然它會。在瀏覽器中打擊網址將不會包含後params ..所以它的拋出錯誤。請檢查一些基本的PHP編碼的 – Sush