0

Web サービス経由で HTML ページを呼び出しています。HTML ページのホール ソース コードを取得する必要があります。私の問題は、http 応答を文字列に変換すると、HTML ページの一部しか得られないことです。穴の HTML ページを取得するにはどうすればよいですか。助けてください。

//paramString1 = url,paramString = header, paramList = paramiters
public String a(String paramString1, String paramString2, List paramList)
  {
    String str1 = null; 
    HttpPost localHttpPost = new HttpPost(paramString1);
    localHttpPost.addHeader("Accept-Encoding", "gzip");
    InputStream localInputStream = null;
   try
     {

    localHttpPost.setEntity(new UrlEncodedFormEntity(paramList));
    localHttpPost.setHeader("Referer", paramString2);
    HttpResponse localHttpResponse = this.c.execute(localHttpPost);
    int i = localHttpResponse.getStatusLine().getStatusCode();

    localInputStream = localHttpResponse.getEntity().getContent();
    Header localHeader = localHttpResponse.getFirstHeader("Content-Encoding");
    if ((localHeader != null) && (localHeader.getValue().equalsIgnoreCase("gzip")))
    {
         GZIPInputStream localObject = null;
      localObject = new GZIPInputStream(localInputStream);
      Log.d("API", "GZIP Response decoded!");
      BufferedReader localBufferedReader = new BufferedReader(new InputStreamReader((InputStream)localObject, "UTF-8"));
      StringBuilder localStringBuilder = new StringBuilder();
      while(true){
          String str2 = localBufferedReader.readLine();
          if (str2 == null)
            break;
          localHttpResponse.getEntity().consumeContent();
          str1 = localStringBuilder.toString();
          localStringBuilder.append(str2);
          continue;
      }
    }
  }
  catch (IOException localIOException)
  {
    localHttpPost.abort();

  }
  catch (Exception localException)
  {
    localHttpPost.abort();

  }
  Object localObject = localInputStream;

return (String)str1;
4

2 に答える 2

0

配列のセットである stringBuilder の最大サイズを超えている必要があるため、stringBuilder で完全なソース コードを取得できない場合がStringBuilderあります。その特定のソースコードを保存したい場合。これを試すことができます:inputStream(htmlソースコードを含む)データは、ファイルに直接保存されます。次に、そのファイルに完全なソース コードがあり、必要なものに対してファイル操作を実行します。これが役立つかどうかを確認してください。

于 2013-06-17T14:38:00.440 に答える