0

PHPを使用してmysqlからデータを取得するアプリを作成しました。しかし、Androidアプリからphpファイルを呼び出すと、LogCatウィンドウに次のように出力されました。

08-26 21:07:57.748: V/(1036): Response : org.apache.http.message.BasicHttpResponse@44f8b018
08-26 21:07:57.758: V/(1036): Entity : org.apache.http.conn.BasicManagedEntity@44f8c730
08-26 21:07:57.839: V/(1036): Result : <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
08-26 21:07:57.839: V/(1036): <html><head>
08-26 21:07:57.839: V/(1036): <title>403 Forbidden</title>
08-26 21:07:57.839: V/(1036): </head><body>
08-26 21:07:57.839: V/(1036): <h1>Forbidden</h1>
08-26 21:07:57.839: V/(1036): <p>You don't have permission to access /PHP/getAllPeopleBornAfter.php
08-26 21:07:57.839: V/(1036): on this server.</p>
08-26 21:07:57.839: V/(1036): </body></html>

しかし、wamp サーバーを使用して .php を実行すると、データを正常に取得できます。どこで間違いを犯したのか理解できません。

以下は私のAndroidコードです

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("year","1980"));

try{
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://10.167.122.24 /PHP/  getAllPeopleBornAfter.php");
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    HttpResponse response = httpclient.execute(httppost);
    HttpEntity entity = response.getEntity();
    InputStream is = entity.getContent();

    Log.v("","Response : "+response);
    Log.v("","Entity : "+entity);
    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
    StringBuilder sb = new StringBuilder();
    String line = null;

    while ((line = reader.readLine()) != null) {
        sb.append(line + "\n");
    }
    is.close();
    result=sb.toString();
    Log.v("","Result : "+result);
}catch(Exception e){
    Log.v("log_tag", "Error in http connection "+e);
}

アイデアをください。前もって感謝します。

4

3 に答える 3

3

1) 関連するメッセージは次のとおりです。

You don't have permission to access /PHP/getAllPeopleBornAfter.php

2) これは Windows サーバーからのものです。

Android フォンからインターネットに「アクセス」する権限があります。

3)リモート クライアント (Android だけでなく、ネットワーク上の他の PC の Web ブラウザー () ファイルへのアクセス) に許可を与えません。

提案:

4) Web サーバーのルート ディレクトリの httpd.conf および/または .htaccess 権限を確認します。

良いリンクと良い例を次に示します。

于 2012-08-27T05:09:50.773 に答える
0

あなたのエラーログは、あなたがインターネット許可を与えるのを忘れたと言っていますAndroidManifest.xml.

AndroidManifest.xmlファイルに次の許可を書くだけです。

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
于 2012-08-27T05:04:18.120 に答える
0

Android マニフェストにインターネット アクセス許可があるかどうかを確認します。

<uses-permission android:name="android.permission.INTERNET" />
于 2012-08-27T05:04:19.487 に答える