2017-02-08 9 views
1

私はネイティブのAndroid開発に初心者です。 xamppサーバを使用してphpmyadminDBを作成しました。それからYiiを使ってREST webserviceを作成しました。私はARCでWebサービスをテストしましたが、正常に動作しています。今私は自分のデバイスでそれをテストしたい。だから私は多くの記事を検索し、答えを見つけた(link)。しかし、それは私を助けてくれません。以下は私のコードですWebサービスを使用してAndroidデバイスをローカルに接続します。

public class MainActivity extends AppCompatActivity { 

String URLGET = "http://192.168.8.85:8000/app/web/users/"; 
String result = ""; 
TextView getData; 
EditText userInput; 
public static final String LOG_TAG = MainActivity.class.getSimpleName(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    getData = (TextView) findViewById(R.id.getData); 
    userInput = (EditText) findViewById(R.id.EnterId); 

    final Button button = (Button) findViewById(R.id.btn_Submit); 


    button.setOnClickListener(new Button.OnClickListener() { 


     @Override 
     public void onClick(View v) { 
      String reqURL = URLGET; 

      new RestOperation().execute(reqURL); 
      //callWebService(query); 
     } 
    }); 

} 

public class RestOperation extends AsyncTask<String, Void, Void> { 


    final HttpClient httpClient = new DefaultHttpClient(); 
    String content; 
    String error; 
    ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); 
    String data = ""; 

    // TextView getData = (TextView) findViewById(R.id.getData); 
    // EditText userInput = (EditText) findViewById(R.id.EnterId); 


    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 

     progressDialog.setTitle("Please Wait..."); 
     progressDialog.show(); 

     data = "data=" + URLEncoder.encode(String.valueOf(userInput.getText())); 
    } 

    @Override 
    protected Void doInBackground(String... params) { 

     BufferedReader br = null; 

     URL url = null; 
     try { 
      url = new URL(params[0]); 


      URLConnection connection = url.openConnection(); 

      connection.setDoOutput(true); 

      OutputStreamWriter outputStreamWriter = new OutputStreamWriter(connection.getOutputStream()); 

      outputStreamWriter.write(data); 
      outputStreamWriter.flush(); 

      br = new BufferedReader(new InputStreamReader(connection.getInputStream())); 

      StringBuilder sb = new StringBuilder(); 

      String line = null; 

      while ((line = br.readLine()) != null) { 
       sb.append(line); 
       sb.append(System.getProperty("line.separator")); 


      } 

      content = sb.toString(); 

     } catch (MalformedURLException e) { 
      error = " Exception: " + e.getMessage(); 
      e.printStackTrace(); 
     } catch (IOException e) { 
      error = " IOException: " + e.getMessage(); 
      e.printStackTrace(); 
     } finally { 
      try { 
       if(br != null) 
       br.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void aVoid) { 
     super.onPostExecute(aVoid); 

     progressDialog.dismiss(); 

     if (error != null) { 
      getData.setText("Error" + error); 
     } else { 
      getData.setText(content); 


     } 
    } 
}} 

上記ipのアドレスは私のワイヤレスアドレスです。まず、私はlocalhostを使用してエミュレータでテストしていましたが、検索すると、私は10.0.2.2を使うべきであることが分かりました。だから私はそれを使用し、それはまだ動作しません。

enter image description hereenter image description here

以下のように私は私が知らない何かが欠落しなければならない私にlogcatwarningを与えます。私は約2〜3日でそれに固執し、本当に何をすべきか分からない。

すべてのヘルプは非常にあなたのAndroid携帯電話/ルーターの無線LANホットスポットに

+0

お使いのデバイスとコンピュータは同じネットワークに存在する必要があります。そのネットワークのIPアドレスを使用し、ファイアウォールをオフにします。 –

+0

私はそれをして、私はあなたに教えてあげるよ – faisal1208

+0

私はあなたがアプリを実行し、このエラーが 'java.net.ConnectException:/192.168.8.85(ポート8000​​)に接続できませんでした:connect failed: EHOSTUNREACH(ホストへのルートなし) ' – faisal1208

答えて

0

電源を入れていただければ幸いですし、あなたの携帯電話にノートパソコンを接続します。

あなたは物事

Wireless LAN adapter Wireless Network Connection: 
    Connection-specific DNS Suffix . : 
    Link-local IPv6 Address . . . . . : fe80::80bc:e378:19ab:e448%11 
    IPv4 Address. . . . . . . . . . . : **192.168.43.76** 
    Subnet Mask . . . . . . . . . . . : 255.255.255.0 
    Default Gateway . . . . . . . . . : 192.168.43.1 

コピーこの192.168.43.76中に次しまいます

今開いてコマンドプロンプトを(私は、サーバーをWAMP使用しています)ローカルホストでサーバーを起動し、IPCONFIGのコマンドを入力します。

あなたのモバイルブラウザ。

注:ネットワークを「ホームネットワーク」として設定してください。ホームネットワークを設定すると、PCが同じネットワーク上の他のデバイスと物を共有できるようになります。 Windows 10を使用している場合は、WiFi>現在のネットワークのネットワークプロパティ>このPCを検出可能にします。

元回答:How can I access my localhost from my Android device?

+0

あなたのAndroid携帯電話/ルータのWifiホットスポットをオンにするのはどういう意味ですか? 「Wifi」または「Wifi Hotspot」をオンにする必要がありますか?これらはどちらも違います。 – faisal1208

+0

この回答は参考になるものです。 'あなたのアンドロイドデバイスのWiFiホットスポットまたは' WiFi'を使うことができます。あなたのデバイスとコンピュータが同じネットワーク上にあり、XAMPP/WAPPが動作していること、ファイアウォールがオフになっていることを確認してください。 –

+0

私は結果をWebブラウザで見ることができますが、私はスクリーンショットを投稿したので私のアプリケーションにアクセスしたいです。 – faisal1208

関連する問題