2014-02-07 20 views
0

傳遞參數給PHP的服務器我的問題是這樣的:我想你所說的網址在一個Android應用程序,並通過這種方式給我的web服務器參數的URI像試圖從Android應用

myserver.com/index.php?name=peter&age=22 

參數如下:

名=彼得

年齡= 22

的服務器已經運行,但我不能用我的Android應用程序代碼中訪問它... 是的,我在清單中的許可......

檢查,如果我在網上很...

感謝您的幫助。

   try{ 
        HttpClient client = new DefaultHttpClient(); 
        String getURL = "irgendeinurl.web44.net/index.php?vorname=maria asdf&[email protected]&phone=0786655962&time=1500&date=160914&merk=wollte nachfragen wegem Termin :) tschüss"; 
        HttpGet get = new HttpGet(getURL); 
        HttpResponse responseGet = client.execute(get); 
        HttpEntity resEntityGet = responseGet.getEntity(); 
       if (resEntityGet != null) { 
        //connection success 
        Log.i("GET RESPONSE",EntityUtils.toString(resEntityGet)); 
       } 

       } catch (Exception e) { 
        e.printStackTrace(); 
       } 

這是我得到:

02-07 14:04:44.062:I /在線(27169):真 02-07 14:04:44.072:W/System.err的( 27169):java.lang.IllegalStateException:目標主機不能爲空或在參數中設置。 scheme = null,host = null,path = irgendeinurl.web44.net/index.php 02-07 14:04:44.072:W/System.err(27169):at org.apache.http.impl.client.DefaultRequestDirector .determineRoute(DefaultRequestDirector.java:591) 02-07 14:04:44.072:W/System.err(27169):at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:293) 02-07 14:04:44.072:W/System.err(27169):at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 02-07 14:04:44.072:W /System.err(27169):at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 02-07 14:04:44.072:W/System.err(27169):at org .apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 02-07 14:04:44.082:W/System.err(27169):at ch.mzg.app.Termin3 $ 2.onClick( Termin3.ja va:106) 02-07 14:04:44.082:W/System.err(27169):at android.view.View.performClick(View.java:3511) 02-07 14:04:44.082:W/System.err(27169):在android.view.View $ PerformClick.run(View.java:14105) 02-07 14:04:44.082:W/System.err(27169):在android.os.Handler。 (Handler.java:605) 02-07 14:04:44.082:W/System.err 44.082:W/System.err(27169):at android.os.Looper.loop(Looper.java:137) 02-07 14:04:44.092:W/System.err(27169):at android.app。 ActivityThread.main(ActivityThread.java:4482) 02-07 14:04:44.092:W/System.err(27169):at java.lang.reflect.Method.invokeNative(Native Method) 02-07 14:04 :44.092:W/System.err(27169):在java.lang.reflect.Method.invok e(Method.java:511) 02-07 14:04:44.092:W/System.err(27169):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:787) 02 -07 14:04:44.092:W/System.err(27169):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554) 02-07 14:04:44.092:W/System。 ERR(27169):在dalvik.system.NativeStart.main(本機方法)

+0

你得到任何錯誤,請?在這裏發帖日誌 –

+0

請你詳細解釋一下du想要什麼? –

+0

我嘗試使用特殊的uri連接到服務器。在那個uri中,我傳遞了一些我需要的參數。問題在於我無法到達服務器......使用計算機,它確實很好...... – kmartinho

回答

0

你必須像編碼您的參數:

String query = URLEncoder.encode("vorname=maria asdf&[email protected]&phone=0786655962&time=1500&date=160914&merk=wollte nachfragen wegem Termin :) tschüss", "utf-8"); 
String getURL = "http://irgendeinurl.web44.net/index.php?" + query; 
0

下面的代碼對我的作品......這些參數是URL在調用此函數之前編碼...您可以根據您的要求自定義返回值...

讓我知道你要什麼更多...

public class GenericNetworkAction { 


     Context context; 
     boolean asynch; 
     String returnResponse = "Error"; 
     String parameters = ""; 
     public GenericNetworkAction(Context passedContext, boolean passedAsynch, String passedParameters) { 
      context = passedContext; 
      asynch = passedAsynch; 
      parameters = passedParameters; 

     } 

     public void HandleNetworkActivity() { 
       String stringUrl = Constants.baseURL; 
       stringUrl = stringUrl + parameters; 
       ConnectivityManager connMgr = (ConnectivityManager) 
       context.getSystemService(Context.CONNECTIVITY_SERVICE); 
       NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); 
       if (networkInfo != null && networkInfo.isConnected()) { 
        if (asynch) 
        new DownloadWebpageTask().execute(stringUrl); 
        else 
         returnResponse = getServerResponse(stringUrl); 
       } else { 
    //    Toast.makeText(context, 
    //      context.getResources().getText(R.string.err_network_na), Toast.LENGTH_SHORT).show(); 
        Log.e("Error", "Error connecting to the network"); 
        return; 
        } 
     } 
     private class DownloadWebpageTask extends AsyncTask<String, Void, String> { 

      @Override 
      protected String doInBackground(String... strArrayUrl) { 
       try { 
        return getServerResponse(strArrayUrl[0]); 
       } 
       catch (Exception e) { 
        e.printStackTrace(); 
       } 
       return ""; 
      } 
      @Override 
      protected void onPostExecute(String strResults) { 

       returnResponse = strResults; 
      } 

      private String getServerResponse(String strUrl) { 
       InputStream localInputStream; 
       try { 
        URL localUrl = new URL (strUrl); 
        HttpURLConnection localConn = (HttpURLConnection) localUrl.openConnection(); 
        localConn.setReadTimeout(10000); 
        localConn.setConnectTimeout(15000); 
        localConn.setRequestMethod("POST"); 
        localConn.setDoInput(true); 
        //localConn.setDoOutput(true); 
        localConn.connect(); 
        localConn.getErrorStream(); 

        int iResponseCode = localConn.getResponseCode(); 
        localInputStream = localConn.getErrorStream(); 

        byte[] buffer = new byte[1000000]; 
        int iReturnNoOfBytes, iOffset=0; 
        iReturnNoOfBytes = localInputStream.read(buffer); 
        localConn.disconnect(); 
        return new String(buffer); 
       } 
       catch (Exception e) { 
        e.printStackTrace(); 
       } 
       return ""; 
      } 

     } 
     private String getServerResponse(String strUrl) { 
      InputStream localInputStream; 
      try { 
       //strUrl = URLEncoder.encode(strUrl, "UTF-8"); 
       URL localUrl = new URL (strUrl); 
       HttpURLConnection localConn = (HttpURLConnection) localUrl.openConnection(); 
       localConn.setReadTimeout(10000); 
       localConn.setConnectTimeout(15000); 
       localConn.setRequestMethod("POST"); 
       localConn.setDoInput(true); 
       localConn.connect(); 


       int iResponseCode = localConn.getResponseCode(); 
       localInputStream = localConn.getInputStream(); 

       byte[] buffer = new byte[1000000]; 
       int iReturnNoOfBytes, iOffset=0; 
       iReturnNoOfBytes = localInputStream.read(buffer); 
       localConn.disconnect(); 
       Log.i("query", strUrl); 
       return new String(buffer); 
      } 
      catch (Exception e) { 
       e.printStackTrace(); 
      } 
      return ""; 
     } 

    } 
0

添加http://之前域名 修改網址,如下所示..

String getURL = "http://irgendeinurl.web44.net/index.php?vorname=maria  asdf&[email protected]&phone=0786655962&time=1500&date=160914&merk=wollte nachfragen wegem Termin :) tschüss";