URL在浏览器中打开,但不在android程序中打开

URL在浏览器中打开,但不在android程序中打开,android,httpclient,Android,Httpclient,有一个URL在PC和移动浏览器(chrome)上可以很好地打开,但当我试图用下面的代码在android程序中打开它时,会出现以下错误 private class DownloadWebPageTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... urls) { String response = ""; for (String url

有一个URL在PC和移动浏览器(chrome)上可以很好地打开,但当我试图用下面的代码在android程序中打开它时,会出现以下错误

private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
  String response = "";
  for (String url : urls) {
    //DefaultHttpClient client = new DefaultHttpClient();
      HttpClient client = AndroidHttpClient.newInstance("Android");
    HttpGet httpGet = new HttpGet(url);
   // httpGet.setHeader("User-Agent", "Chrome");
    try {
      HttpResponse execute = client.execute(httpGet);
      InputStream content = execute.getEntity().getContent();

      BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
      String s = "";
      while ((s = buffer.readLine()) != null) {
        response += s;
      }

    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  return response;
}
私有类下载WebPagetTask扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…URL){
字符串响应=”;
for(字符串url:url){
//DefaultHttpClient=新的DefaultHttpClient();
HttpClient=AndroidHttpClient.newInstance(“Android”);
HttpGet HttpGet=新的HttpGet(url);
//setHeader(“用户代理”、“浏览器”);
试一试{
HttpResponse execute=client.execute(httpGet);
InputStream内容=execute.getEntity().getContent();
BufferedReader buffer=新的BufferedReader(新的InputStreamReader(内容));
字符串s=“”;
而((s=buffer.readLine())!=null){
响应+=s;
}
}捕获(例外e){
e、 printStackTrace();
}
}
返回响应;
}
在运行代码时,我从服务器收到一个拒绝访问错误。如果我尝试任何其他url,它工作正常。我尝试搜索如何设置用户代理以绕过服务器上的任何限制,但未能成功。请帮助

此外,我还看到调用此url的网页的标题部分(从浏览器)包含以下内容

 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
 <meta name="apple-mobile-web-app-capable" content="yes" />
 <meta name="HandheldFriendly" content="true" />
 <meta name="MobileOptimized" content="width" />
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

我创建了一个php文件,如下所示

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
echo "$header: $value <br />\n";
}
?>

我从PC浏览器和Android代码中调用了此页面。使用httpGet.setHeader(名称、值)在Android代码中添加了来自PC浏览器的所有标题值


它现在正在工作。:)我创建了一个php文件,如下所示

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
echo "$header: $value <br />\n";
}
?>

我从PC浏览器和Android代码中调用了此页面。使用httpGet.setHeader(名称、值)在Android代码中添加了来自PC浏览器的所有标题值


它正在工作。:

您是否在清单中授予了internet权限?是的,其他url的打开状态良好。您是否在清单中授予了internet权限?是的,其他url的打开状态良好。当在应用程序端添加httpGet.setHeader(名称、值)时,它工作正常,否则会导致“mod security action error:403”当通过应用程序请求时。当在应用程序端添加httpGet.setHeader(名称、值)时,它起作用,否则通过应用程序请求时会导致“mod security action error:403”。