0

我正在尝试将用户和密码发布到位于远程服务器上的 php 文件中,而 android 给了我一个我不明白的异常。

我的意思是,我的代码如下所示:

String url_connect = "http://myhost.com/mylogin.php";
Boolean result_back;

public boolean loginstatus(String username ,String password ) {
  int logstatus=-1;
  ArrayList<NameValuePair> postparameters2send= new ArrayList<NameValuePair>();
  postparameters2send.add(new BasicNameValuePair("uzer",username));
  postparameters2send.add(new BasicNameValuePair("pass",md5(password)));
  JSONArray jdata=post.getserverdata(postparameters2send, url_connect);
  ... more code here
}

和 LogCat 中的错误

Error in http connection: java.net.UnknownHostException: myhost.com

但问题是......如果我复制上面声明的整个 url_connect 字符串,并将其粘贴到浏览器中......它工作得很好。为什么 Eclipse 会抛出这个错误?

我怎样才能解决这个问题?

我的 AndroidManifest.xml 是:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mysoft.mydualscreenpro"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.mysoft.mydualscreenpro.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.mysoft.mydualscreenpro.MyNewScreen"
            android:label="@string/title_activity_my_new_screen" >
        </activity>
    </application>

</manifest>
4

2 回答 2

0

确保您在文件中添加了 INTERNET 权限AndroidManifest,否则 Android 不会让您的应用程序访问 Internet 并会抛出该异常。

于 2013-07-25T14:56:19.730 回答
0

您需要指定您的应用有权访问互联网。当用户安装应用程序时,他们会看到您的应用程序可以访问互联网,并选择是否仍要使用在此处输入代码。

<uses-permission android:name="android.permission.INTERNET" />

它应该与您可能使用的任何其他权限一起位于标签之外和<application>标签内<manifest>,如下所示。

</application>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    
</manifest>

您还应该阅读更多权限:http: //developer.android.com/guide/topics/security/permissions.html

于 2013-07-25T15:16:01.160 回答