【问题标题】:FileNotFoundException when using Wi-Fi in Android在 Android 中使用 Wi-Fi 时出现 FileNotFoundException
【发布时间】:2016-05-26 04:47:07
【问题描述】:

当我使用我的数据计划并且我的应用程序运行良好时,我的脚本具有完全访问权限,只有当我切换到 Wi-Fi 时,我的脚本才会不断收到 500 内部服务器错误。

我正在使用 php 脚本,我的应用程序通过以下方式访问它:

    public JSONObject getHttpResponse(String domUrl){

    String parsedString = "";

    //Log.d("Tag Name", "gggg");
    try {

        URL url = new URL(domUrl);
        URLConnection conn = url.openConnection();

        HttpURLConnection httpConn = (HttpURLConnection) conn;
        httpConn.setAllowUserInteraction(false);
        httpConn.setInstanceFollowRedirects(true);
        httpConn.setRequestMethod("GET");
        httpConn.connect();

        InputStream is = httpConn.getInputStream();
        parsedString = convertinputStreamToString(is);

        httpConn.disconnect();
        //((HttpURLConnection) conn).disconnect();

        if(parsedString.length() > 0){
            return getJSONResponseObject(parsedString);
        }

        //Log.d("Tag Name xfgfgxfgxfg", parsedString);

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

    return null;
}

我的 AndroidManifest.xml 文件包含以下内容:

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

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="com.example.towntour.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />


<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".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>
</application>

</manifest>

我得到的错误:

java.io.FileNotFoundException: http://www.hugt.co.uk/getTopThreads.php?threadTitle=&threadCountry=&threadCategory=&threadSubCategory=
    02-15 10:28:10.675    6161-6184/com.threadbump.trikampatel.threadbump W/System.err﹕ at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:186)
    02-15 10:28:10.675    6161-6184/com.threadbump.trikampatel.threadbump W/System.err﹕ at com.threadbump.trikampatel.threadbump.MainActivity.getHttpResponse(MainActivity.java:1220)
    02-15 10:28:10.675    6161-6184/com.threadbump.trikampatel.threadbump W/System.err﹕ at com.threadbump.trikampatel.threadbump.MainActivity$17.run(MainActivity.java:1063)
    02-15 10:28:10.675    6161-6184/com.threadbump.trikampatel.threadbump W/System.err﹕ at java.lang.Thread.run(Thread.java:864)
    02-15 10:28:10.685    6161-6183/com.threadbump.trikampatel.threadbump W/System.err﹕ java.io.FileNotFoundException: http://www.hugt.co.uk/getFavourites.php?userID=49&threadTitle=&threadCountry=&threadCategory=&threadSubCategory=
    02-15 10:28:10.685    6161-6183/com.threadbump.trikampatel.threadbump W/System.err﹕ at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:186)
    02-15 10:28:10.685    6161-6183/com.threadbump.trikampatel.threadbump W/System.err﹕ at com.threadbump.trikampatel.threadbump.MainActivity.getHttpResponse(MainActivity.java:1220)
    02-15 10:28:10.685    6161-6183/com.threadbump.trikampatel.threadbump W/System.err﹕ at com.threadbump.trikampatel.threadbump.MainActivity$16.run(MainActivity.java:1009)
    02-15 10:28:10.685    6161-6183/com.threadbump.trikampatel.threadbump W/System.err﹕ at java.lang.Thread.run(Thread.java:864)
    02-15 10:28:10.685    6161-6182/com.threadbump.trikampatel.threadbump W/System.err﹕ java.io.FileNotFoundException: http://www.hugt.co.uk/getThread.php?threadTitle=&threadCountry=&threadCategory=&threadSubCategory=
    02-15 10:28:10.685    6161-6182/com.threadbump.trikampatel.threadbump W/System.err﹕ at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:186)
    02-15 10:28:10.685    6161-6182/com.threadbump.trikampatel.threadbump W/System.err﹕ at com.threadbump.trikampatel.threadbump.MainActivity.getHttpResponse(MainActivity.java:1220)
    02-15 10:28:10.685    6161-6182/com.threadbump.trikampatel.threadbump W/System.err﹕ at com.threadbump.trikampatel.threadbump.MainActivity$12.run(MainActivity.java:714)
    02-15 10:28:10.685    6161-6182/com.threadbump.trikampatel.threadbump W/System.err﹕ at java.lang.Thread.run(Thread.java:864)

有人可以建议吗?

【问题讨论】:

  • 可能是由于 URL threadTitle=&amp;threadCountry=&amp;threadCategory=&amp;threadSubCategory= 中的所有参数都是空的
  • @ρяσѕρєяK,感谢您的回复,但在使用我的互联网数据计划时脚本可以正常工作。
  • 这可能与我托管的服务器有关吗?
  • 是的,我知道,如果您使用的是无线,这就是您所得到的,但是当使用互联网数据计划时,浏览器中的脚本可以工作,这就是我觉得奇怪的原因

标签: java android wireless


【解决方案1】:

我遇到了类似的问题。

添加这一行

   urlConnection.setRequestProperty("Accept-Encoding", "identity");

设置 Accept-Encoding 请求头显式禁用自动解压缩并保持响应头不变;调用者必须根据响应的 Content-Encoding 标头根据需要处理解压缩。通过android HttpUrlconnection 参考http://developer.android.com/reference/java/net/HttpURLConnection.html

【讨论】:

  • 还是不行,谢谢回复,是不是和服务器主机设置有关?
  • 嗨,你能解决它吗?我不认为这取决于您的服务器主机,我认为这与您的请求有关
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多