【发布时间】:2014-06-30 15:26:23
【问题描述】:
我希望我的 Android 程序使用其 URL 检查文件(例如 index.php)是否存在于远程服务器中。即,如果我单击按钮,它应该检查 url 是否存在。如果是,它应该加载相同的 URL,否则会显示消息“文件不存在!”
我做了这样的事情:
private OnClickListener cameraListener9=new OnClickListener(){
public void onClick(View v){
idNo=editText.getText().toString();
String URLName ="http://blahblah/kufpt/upload_test/"+ idNo + "/index.php";
boolean bResponse = exists(URLName);
if (bResponse==true)
{
Toast.makeText(MainActivity.this, "FILE EXISTS" , Toast.LENGTH_SHORT).show();
WebView mWebView =(WebView)findViewById(R.id.webView);
mWebView.loadUrl(URLName);
}
else
Toast.makeText(MainActivity.this, "File does not exist!", Toast.LENGTH_SHORT).show();
}
};
/* 这是检查 index.php 文件是否存在或已创建的函数 */ 如Check if file exists on remote server using its URL 中所建议的那样
public static boolean exists(String URLName){
try {
HttpURLConnection.setFollowRedirects(false);
// note : you may also need
//HttpURLConnection.setInstanceFollowRedirects(false)
HttpURLConnection con = (HttpURLConnection) new URL(URLName).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
但是,即使文件确实存在于指定文件夹中,这也总是给我一个错误的返回值。只是一次绝望的尝试,我尝试显示 con.getResponsecode() 的值,它总是给我一个 0 值。任何人都可以帮助我为什么输出会这样?
【问题讨论】:
-
您是否在清单中添加了
Internet权限? -
您可能遇到了异常。如果是这样,您可以发布例外情况吗?
-
@Coderji 感谢您的回复。我的清单中确实有互联网许可:
-
@Henry 不,我没有遇到任何异常。我的意思是,我尝试显示 getResponseCode 和 HttpURLConnection.HTTP_OK 的结果,这总是分别给我 0 和 200,这让我相信没有例外。问题是不确定这段代码是否真的建立了与服务器的连接。
标签: android url file-exists android-internet